MySQL daten auslesen und in eine combobox schreiben

Spezielle Fragen zu PostgreSQL, MySQL, SQLite, SQL ...
Antworten
Beule
Foriker
Beiträge: 3
Registriert: So 29. Aug 2010, 08:39
Kontaktdaten:

MySQL daten auslesen und in eine combobox schreiben

Beitrag von 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

yoda
Moderator
Beiträge: 433
Registriert: Mo 2. Jan 2006, 22:35
Wohnort: bei Göttinge
Kontaktdaten:

Re: MySQL daten auslesen und in eine combobox schreiben

Beitrag von 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

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

Re: MySQL daten auslesen und in eine combobox schreiben

Beitrag von 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

yoda
Moderator
Beiträge: 433
Registriert: Mo 2. Jan 2006, 22:35
Wohnort: bei Göttinge
Kontaktdaten:

Re: MySQL daten auslesen und in eine combobox schreiben

Beitrag von 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

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

Re: MySQL daten auslesen und in eine combobox schreiben

Beitrag von 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

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast