How to program Gambas with MySQL in Ubuntu

How to program Gambas with MySQL in Ubuntu

  1. sudo mkdir /var/run/mysqld  
  2. sudo ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock  
Here are the way how to program Gambas with MySQL. :)

Assuming you already know how to do simple form using Gambas.If not, better you check out this post.
gb.db must be selected.

Create a form.

Here are the Gambas code.
  1. ' Gambas class file  
  2.  PUBLIC MyConn AS Connection  
  3.  PUBLIC MyRS AS Result  
  4.  PUBLIC vCari AS String  
  5.   
  6.  STATIC PUBLIC SUB Main()  
  7.  DIM oForm AS form  
  8.  oForm = NEW fsahabat  
  9.  oForm.showModal()  
  10.  END  
  11.   
  12.  PUBLIC SUB _new()  
  13.    ME.center  
  14.    DBConnect  
  15.    getData  
  16.    transferData  
  17.    fillUpListBox  
  18.  END  
  19.   
  20.  PUBLIC SUB DBConnect()  
  21.    MyConn = NEW Connection  
  22.    MyConn.Close  
  23.    MyConn.Type = "mysql"  
  24.    MyConn.Host = "localhost"  
  25.    MyConn.Login = "root"  
  26.    MyConn.Password = "root"  
  27.    MyConn.Name = "sahabat"  
  28.    MyConn.Open  
  29.  CATCH  
  30.    Message.error(Error.text)  
  31.  END  
  32.  PUBLIC SUB getData()  
  33.    DIM sql AS String  
  34.    sql = "select * from tsahabat order by id"  
  35.    MyRS = MyConn.Exec(sql)  
  36.  CATCH  
  37.    Message.error(Error.text)  
  38.  END  
  39.   
  40.  PUBLIC SUB transferData()  
  41.    vCari = Str(MyRS!id)  
  42.    txtName.text = MyRS!nama  
  43.    txtAlamat.text = MyRS!almt1  
  44.    txtPhone.text = MyRS!telp  
  45.  CATCH  
  46.    Message.error(Error.text)  
  47.  END  
  48.   
  49.  PUBLIC SUB fillUpListBox()  
  50.    DIM i AS Integer  
  51.    DIM vKode AS String  
  52.   
  53.    listbox1.Clear  
  54.    FOR i = 1 TO MyRS.Count  
  55.        vKode = Space$(7 - Len(Str(MyRS!id))) & Str(MyRS!id)  
  56.        listbox1.add(vKode & " | " & MyRS!nama)  
  57.       MyRS.MoveNext  
  58.    NEXT  
  59.   
  60.  CATCH  
  61.    Message.error(Error.text)  
  62.  END  
  63.   
  64.  PUBLIC SUB listbox1_Click()  
  65.    DIM sql AS String  
  66.    btnSave.Text = "UPDATE"  
  67.    vCari = Trim(Left$(listbox1.text, 7))  
  68.    sql = "select * from tsahabat where id =" & vCari  
  69.    MyRS = MyConn.Exec(sql)  
  70.    transferData  
  71.   
  72.  CATCH  
  73.    Message.Error(Error.Text)  
  74.   
  75.  END  
  76.   
  77.  PUBLIC SUB btnSave_Click()  
  78.   DIM sql AS String  
  79.   
  80.   IF btnAdd.Enabled = FALSE THEN  
  81.     sql = "insert into tsahabat (nama,telp,almt1 )values( '" &  
  82.            txtName.text & "','" & txtPhone.text & "','" &  
  83.            txtAlamat.text & "')"  
  84.     MyRS = MyConn.Exec(sql)  
  85.     btnAdd.Enabled = TRUE  
  86.   ELSE  
  87.     sql = "update tsahabat set "  
  88.     sql = sql & "nama = '" &  
  89.     txtName.text  
  90.     sql = sql & "',almt1 = '" &  
  91.     txtAlamat.text  
  92.     sql = sql & "',telp = '" & txtPhone.text & "' where id = " & vCari  
  93.     MyRS = MyConn.Exec(sql)  
  94.   ENDIF  
  95.   getData  
  96.   fillUpListBox  
  97.   
  98.  CATCH  
  99.   Message.Error(Error.Text)  
  100.  END  
  101.   
  102.  PUBLIC SUB btnCancel_Click()  
  103.   DIM sql AS String  
  104.   vCari = Trim(Left$(listbox1.text, 7))  
  105.   IF vCari <> "" THEN  
  106.     btnAdd.Enabled = TRUE  
  107.     sql = "select * from tsahabat where id =" & vCari  
  108.     MyRS = MyConn.Exec(sql)  
  109.     transferData  
  110.    CATCH  
  111.     Message.Error(Error.Text)  
  112.    ELSE  
  113.     clear  
  114.    ENDIF  
  115. END  
  116.   
  117. PUBLIC SUB btnAdd_Click()  
  118.   clear  
  119.   btnAdd.Enabled = FALSE  
  120.   btnSave.Text = "SAVE"  
  121. END  
  122.   
  123. PUBLIC SUB btnDelete_Click()  
  124.   DIM sql AS String  
  125.   IF Message.Question("Confirm to delete""Yes""No") = 1 THEN  
  126.     sql = "delete from tsahabat where id = " & vCari  
  127.     MyRS = MyConn.Exec(sql)  
  128.     getData  
  129.     transferData  
  130.     fillUpListBox  
  131.   ENDIF  
  132.   
  133. END  
  134.   
  135.  PRIVATE SUB clear()  
  136.   txtName.text = ""  
  137.   txtPhone.text = ""  
  138.   txtAlamat.text = ""  
  139.  END  
  140.   
  141.  PUBLIC SUB _free()  
  142.   MyConn.Close  
  143.   Message.Info("Thanks..., Salam Linux ")  
  144.  END  
  145.  'End of program  
Here the table structure with sample data.
  1. create table tsahabat (  
  2. id int(7) NOT NULL auto_increment,  
  3. nama char(50) ,almt1 char(255),telp char(10),  
  4. primary key (id)  
  5. );  
  6.   
  7. insert into tsahabat (nama,almt1,telp) values ('arejae','Sg Buloh,Selangor','012-1234567');  
  1. create table tsahabat (  
  2. id int(7) NOT NULL auto_increment,  
  3. nama char(50) ,almt1 char(255),telp char(10),  
  4. primary key (id)  
  5. );  
  6.   
  7. insert into tsahabat (nama,almt1,telp) values ('arejae','Sg Buloh,Selangor','012-1234567');  
You will have the output like below.


Now you can program in Ubuntu, using Gambas and powered with MySQL. :)
Thanks again to IlmuKomputer
Happy programming. :)