Entwickler-Ecke
Datenbanken - Datensatz suchen und ändern
bobi - Fr 22.06.07 10:05
Titel: Datensatz suchen und ändern
Hi, wenn ich bei einer Oracle SQL Abfrage alle Daten wieder in die verschiedenen TextBoxen schreiben will, wie kann ich das am besten realisieren?
Das was da jetzt rauskommen würde, möchte ich gerne wieder in meine TextBoxen schreiben.
Mein Erster Versuch
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| procedure TWinForm_Inventar_Suche.Button3_Click(sender: System.Object; e: System.EventArgs); var rw : DataRow; begin oda:=OracleDataAdapter.Create('Select * from '+db1+' where systemname '+TextBox1.Text, conn); ocb:=OracleCommandBuilder.Create(oda); ds := DataSet.Create (db1);
ds.Clear; conn.Open; oda.Fill(ds, db1); dt := ds.Tables [db1]; conn.Close;
TextBox1.Text := ['Systemname']; TextBox2.Text := ['Benutzer']; TextBox3.Text := ['Inventarnr']; TextBox4.Text := ['Standort']; TextBox5.Text := ['Abteilung']; TextBox6.Text := ['Raum']; TextBox7.Text := ['Produkt']; TextBox8.Text := ['Hersteller']; TextBox9.Text := ['Seriennummer']; TextBox10.Text := ['Lieferant']; TextBox11.Text := ['Lieferdatum']; RichTextBox1.Text := ['Bemerkung']; TextBox12.Text := ['Leasingbeginn']; TextBox13.Text := ['Leasingende']; TextBox14.Text := ['Leasingnr']; end; |
MFG: bobi
JensLaskowski - Fr 22.06.07 16:52
Benutze doch mal die Methode FieldByName
Dies würde dann so aussehen:
Delphi-Quelltext
1:
| TextBox1.Text := Query.FieldByName('Systemname').AsString; |
Dann müsste es eigentlich gehen.
Mit freundlichen Grüßen
JensLaskowski
bobi - Mo 25.06.07 09:29
Das habe ich jetzt mal versucht, aber dabei entsteht ein weiteres Problem.
Sobald ich nun eine Abfrage starte und diese dann halt in die einzelnen TextBoxen schreiben möchte ( mit diesen Befehl) kommt diese Fehlermeldung:
„Exception-Klasse System.NullReferenceException mit Meldung ‚Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.’“
JensLaskowski - Mo 25.06.07 13:05
Könntest du mal den Code posten, dann kann ich das auch nachvollziehen.
Mit freundlichen Grüßen
JensLaskowski
bobi - Mo 25.06.07 13:08
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:
| procedure TWinForm_Inventar_Suche.Button3_Click(sender: System.Object; e: System.EventArgs); begin oda:=OracleDataAdapter.Create('Select * from '+db1+' where systemname ='+hk+TextBox1.Text+hk, conn); ocb:=OracleCommandBuilder.Create(oda); ds := DataSet.Create (db1);
ds.Clear; conn.Open; oda.Fill(ds, db1); dt := ds.Tables [db1]; conn.Close;
TextBox1.Text := Query.FieldByName('Systemname').AsString; TextBox2.Text := Query.FieldByName('Benutzer').AsString; TextBox3.Text := Query.FieldByName('Inventarnr').AsString; TextBox4.Text := Query.FieldByName('Standort').AsString; TextBox5.Text := Query.FieldByName('Abteilung').AsString; TextBox6.Text := Query.FieldByName('Raum').AsString; TextBox7.Text := Query.FieldByName('Produkt').AsString; TextBox8.Text := Query.FieldByName('Hersteller').AsString; TextBox9.Text := Query.FieldByName('Seriennummer').AsString; TextBox10.Text := Query.FieldByName('Lieferant').AsString; TextBox11.Text := Query.FieldByName('Lieferdatum').AsString; RichTextBox1.Text := Query.FieldByName('Bemerkung').AsString; TextBox12.Text := Query.FieldByName('Leasingbeginn').AsString; TextBox13.Text := Query.FieldByName('Leasingende').AsString; TextBox14.Text := Query.FieldByName('Leasingnr').AsString; end; |
JensLaskowski - Mo 25.06.07 18:18
bobi hat folgendes geschrieben: |
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:
| procedure TWinForm_Inventar_Suche.Button3_Click(sender: System.Object; e: System.EventArgs); begin oda:=OracleDataAdapter.Create('Select * from '+db1+' where systemname ='+hk+TextBox1.Text+hk, conn); ocb:=OracleCommandBuilder.Create(oda); ds := DataSet.Create (db1);
ds.Clear; conn.Open; oda.Fill(ds, db1); dt := ds.Tables [db1]; conn.Close;
TextBox1.Text := Query.FieldByName('Systemname').AsString; TextBox2.Text := Query.FieldByName('Benutzer').AsString; TextBox3.Text := Query.FieldByName('Inventarnr').AsString; TextBox4.Text := Query.FieldByName('Standort').AsString; TextBox5.Text := Query.FieldByName('Abteilung').AsString; TextBox6.Text := Query.FieldByName('Raum').AsString; TextBox7.Text := Query.FieldByName('Produkt').AsString; TextBox8.Text := Query.FieldByName('Hersteller').AsString; TextBox9.Text := Query.FieldByName('Seriennummer').AsString; TextBox10.Text := Query.FieldByName('Lieferant').AsString; TextBox11.Text := Query.FieldByName('Lieferdatum').AsString; RichTextBox1.Text := Query.FieldByName('Bemerkung').AsString; TextBox12.Text := Query.FieldByName('Leasingbeginn').AsString; TextBox13.Text := Query.FieldByName('Leasingende').AsString; TextBox14.Text := Query.FieldByName('Leasingnr').AsString; end; | |
Wenn ich das so richtig sehe, holst du dir die Daten mit einem DataSet aus der Tabelle. Oder teusche ich mich da??
Wenn das so ist, musst du Query durch den Namen deines DataSets ersetzen. Was anderes fällt mir jetzt auf die schnelle nicht auf.
Das Query war nur ein Beispiel von mir.
Mit freundlichen Grüßen
JensLaskowski
bobi - Di 26.06.07 08:26
Also ich habe das dann mal mit dem DataSet versucht, es will einfach nicht funktionieren.
Wenn ich ganz normal meinen DataSet nehme, kennt er keine FieldByName und wenn ich TDataSet schreibe, bekomme ich nur eine Fehlermeldung:
„Diese Form des Methodenaufrufs ist nur für Klassenmethoden erlaubt“
Ich weiß da in Moment nicht weiter.
Mit freundlichen Grüßen: bobi
jasocul - Di 26.06.07 09:42
@Jens:
bobi programmiert mit .NET. Die DataSets sind dort anders zu handhaben.
@bobi:
Schau Dir doch erstmal die Hilfe zu den DataSets an. Ich meine, dass dort auch Beispiele sind.
Hier noch ein Buchtipp:
http://www.jasocul.de/html/delphi_2005.html
Datenbanken mit .NET sind einfach zum Kotzen und nicht zu empfehlen
bobi - Di 26.06.07 11:12
Erstmal danke für die Hilfe, ich glaube sonst würde ich langsam am Rad drehen.
Ja das es bei .NET ein wenig anders ist, habe ich dann auch feststellen müssen.
Ich habe das Problem jetzt ein wenig anders gelöst, zum sieht es so aus als würde es so funktionieren.
Ich habe zwar jetzt noch ein anderes Problem, aber ich denke mal das liegt an etwas anderem.
MFG: bobi
bobi - Mi 27.06.07 10:16
Nach lagen hin und her habe ich dann doch endlich die richtige Lösung gefunden, ich habe sie mir mehr oder weniger zusammengebastelt.
Für das Archiv wollte ich diese mal hier Posten, falls noch weitere Leute das gleiche Problem haben.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:
| procedure TWinForm_Inventar_Suche.Button4_Click(sender: System.Object; e: System.EventArgs); begin oda:=OracleDataAdapter.Create('Select * from '+db1+' where inventarnr ='+hk+TextBox3.Text+hk, conn); ocb:=OracleCommandBuilder.Create(oda); ds := DataSet.Create (db1);
ds.Clear; conn.Open; oda.Fill(ds, db1); dt := ds.Tables [db1]; conn.Close;
TextBox1.Text := dt.Rows[0]['Systemname'] as String; TextBox2.Text := dt.Rows[0]['Benutzer'] as String; TextBox3.Text := dt.Rows[0]['Inventarnr'] as String; TextBox4.Text := dt.Rows[0]['Standort'] as String; TextBox5.Text := dt.Rows[0]['Abteilung'] as String; TextBox6.Text := dt.Rows[0]['Raum'] as String; TextBox7.Text := dt.Rows[0]['Produkt'] as String; TextBox8.Text := dt.Rows[0]['Hersteller'] as String; TextBox9.Text := dt.Rows[0]['Seriennummer'] as String; TextBox10.Text := dt.Rows[0]['Lieferant'] as String; TextBox11.Text := dt.Rows[0]['Lieferdatum'] as String; RichTextBox1.Text := dt.Rows[0]['Bemerkung'] as String; TextBox12.Text := dt.Rows[0]['Leasingbeginn'] as String; TextBox13.Text := dt.Rows[0]['Leasingende'] as String; TextBox14.Text := dt.Rows[0]['Leasingnr'] as String; end; |
MFG: bobi
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!