MySQL daten auslesen und in eine combobox schreiben

Wie auf MySql und den ganzen Rest zugreifen ...

MySQL daten auslesen und in eine combobox schreiben

Beitragvon Beule » So 29. Aug 2010, 09:23

Hallöchen zusammen,

ich habe hier ein problem mit Gambas und MySql.

Und zwar habe ich eine Tabelle mit diversen Feldern (wie z.B. Name, Vorname etc)
nun stockt es bei mir mit dem auslesen der Daten aus der Datenbank.
Das Eintragen der Daten in die Datenbank hat schon mal super geklappt, aber wie bekomme ich die daten aus der Datenbank wieder zurück.

Ich möchte eine Suchfunktion definieren, welche mir dann die gefundenen Datensätze in eine Combobox einfüllt, und ich sie von dort aus weiterverwenden kann.
Das einzige was ich bis jetzt zustande gebracht habe, ist dass er mir zählt, wieviele Datensätze mit dem suchmerkmal vorhanden sind.

Code: Alles auswählen
PUBLIC rs1 AS result
.
.
.
IF text1.text <> "" AND text2.text = "" THEN

 rs1 = $Con.Exec("SELECT count(*) FROM Daten where Name = '" & Text1.text & "'")

ELSE IF text1.text <> "" AND text2.text <> "" THEN
 rs1 = $Con.Exec("SELECT count(*) FROM Daten where Name = '" & Text1.text & "' and vorname = '" & text2.text & "' ")

ELSE IF text1.text = "" AND text2.text <> "" THEN
 rs1 = $Con.Exec("SELECT count(*) FROM Daten where Vorname = '" & Text1.text & "'")

ELSE IF text1.text = "" AND text2.text = "" THEN
Message.Info("Mintestens `Name` oder `Vorname` muss angegeben sein")
GOTO ende
ENDIF



wie geht denn der syntax zum auslesen und weiterverarbeiten der daten?

Jede Hilfe ist WIllkommen

Gruss

Beule
Beule
Foriker
 
Beiträge: 3
Registriert: So 29. Aug 2010, 08:39

Re: MySQL daten auslesen und in eine combobox schreiben

Beitragvon yoda » So 29. Aug 2010, 10:15

Hi,

du zählst ja auch alles mit Count(*) mach mal nur * also select * from...

oder select name,vorname from ...

du kannst auch gleich sortieren select name,vorname from datenbank where ... order by name

mfg Yoda
yoda
Site Admin
 
Beiträge: 423
Registriert: Mo 2. Jan 2006, 22:35
Wohnort: bei Göttinge

Re: MySQL daten auslesen und in eine combobox schreiben

Beitragvon Beule » So 29. Aug 2010, 10:51

danke für die antwort,

ich hab das nun mal so probiert:

Code: Alles auswählen

              PUBLIC resultate AS String

resultate = ($Con.Exec("SELECT Vorname FROM Daten where Name = '" & Text1.text & "'"))
Text3.text = Text3.text & (Chr(10)) & resultate


da kriege ich dann aber einen

Code: Alles auswählen
Type mismach: wanted string, got result instead


ne idee wie ich das ändern kann?


auch ist mir die schleife noch nicht ganz geläufig, wie ich das machen muss, wenn ich mehrere ergebnisse zurückgeliefert kriege.

Gruss

Beule
Beule
Foriker
 
Beiträge: 3
Registriert: So 29. Aug 2010, 08:39

Re: MySQL daten auslesen und in eine combobox schreiben

Beitragvon yoda » So 29. Aug 2010, 11:49

Hi,

hier mal eine Codeschnipsel wie ich es in meinen Tuxlog mache. Ich lese hier alles was da ist ein.

Code: Alles auswählen
PUBLIC SUB lieslog(orderby AS String, was AS String, ist AS String) '____ MySQL Log lesen _____________________
  DIM zahl, v_zeile, gesamt AS Integer
  DIM resultP AS Result
  DIM sql, erl, qsl_ein AS String
  DIM conn AS NEW Connection
  DIM hFile AS File

  sql = "select * from log where " & was & "='" & ist & "' order by " & orderby & " DESC"
  resultP = $hConn.Exec(sql)
IF resultP.Available THEN
   resultP.MoveFirst  ' zum ersten Ergebnis springen

'Dann gebe ich alles in ein Columnview aus

 WITH ColumnView1
    .Columns.Count = 18
    .Columns[0].Width = 30
    .Columns[0].Text = "ID"
    .Columns[1].Width = 60
    .Columns[1].Text = "QRG"
    .Columns[2].Width = 60
    .Columns[2].Text = "Call"
    .Columns[3].Width = 60
    .Columns[3].Text = "Name"
    .Columns[4].Width = 60
    .Columns[4].Text = "Datum"
    .Columns[5].Width = 60
    .Columns[5].Text = "UTC"
    .Columns[6].Width = 50
    .Columns[6].Text = "Mode"
    .Columns[7].Width = 60
    .Columns[7].Text = "QTH"
    .Columns[8].Width = 60
    .Columns[8].Text = "Locator"
    .Columns[9].Width = 60
    .Columns[9].Text = "DOK"
    .Columns[10].Width = 60
    .Columns[10].Text = "QSL ein"
    .Columns[11].Width = 60
    .Columns[11].Text = "QSL aus"
    .Columns[12].Width = 60
    .Columns[12].Text = "RST erh."
    .Columns[13].Width = 60
    .Columns[13].Text = "RST geg."
    .Columns[14].Width = 60
    .Columns[14].Text = "my Wtts"
    .Columns[15].Width = 60
    .Columns[15].Text = "its Wtts"
    .Columns[16].Width = 100
    .Columns[16].Text = "Bemerkung"
    .Columns[17].Width = 100
    .Columns[17].Text = "Timestump"

   END WITH
  ColumnView1.Clear() ' Columnview leeren
 
  FOR v_zeile = 0 TO resultP.Count - 1
    IdP.Add(Str(v_zeile))
    IdP[v_zeile] = resultP!id
    ColumnView1.Add(v_zeile, resultP!id)
    ColumnView1[v_zeile][1] = resultP!qrg
    ColumnView1[v_zeile][2] = resultP!rufzeichen
    ColumnView1[v_zeile][3] = resultP!vname
    ColumnView1[v_zeile][4] = resultP!datum
    ColumnView1[v_zeile][5] = resultP!utc
    ColumnView1[v_zeile][6] = resultP!mode
    ColumnView1[v_zeile][7] = resultP!land
    ColumnView1[v_zeile][8] = resultP!locator
    ColumnView1[v_zeile][9] = resultP!dok
    ColumnView1[v_zeile][10] = resultP!qsl_ein
    ColumnView1[v_zeile][11] = resultP!qsl_aus
    ColumnView1[v_zeile][12] = resultP!rst_erh
    ColumnView1[v_zeile][13] = resultP!rst_geg
    ColumnView1[v_zeile][14] = resultP!wtts_aus
    ColumnView1[v_zeile][15] = resultP!wtts_ein
    ColumnView1[v_zeile][16] = resultP!bemerk
    ColumnView1[v_zeile][17] = resultP!stump

    resultP.MoveNext ' nechster Datensatz
    gesamt = gesamt + 1
    TextLabel65.Text = " Gesamteinträge:" & gesamt
  NEXT

END IF
  TRY $hConn.Close ' SQL Verbindung schließen
END IF 'resultP




Ich hoffe der Code hilft dir weiter

mfg Yoda
yoda
Site Admin
 
Beiträge: 423
Registriert: Mo 2. Jan 2006, 22:35
Wohnort: bei Göttinge

Re: MySQL daten auslesen und in eine combobox schreiben

Beitragvon Beule » So 29. Aug 2010, 16:14

supi yoda,

vielen dank...mit diesem code hats nun geklappt, der rest ist jetzt nur noch ein bisschen probieren

bist mein held :mrgreen:

gruss

Beule
Beule
Foriker
 
Beiträge: 3
Registriert: So 29. Aug 2010, 08:39


Zurück zu Datenbankzugriff

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast