Autor Beitrag
bobi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 45

Windoof XP Pro.
Delphi 2006 .NET
BeitragVerfasst: Fr 22.06.07 10:05 
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

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 168

Win XP
BDS 2006 Architect
BeitragVerfasst: Fr 22.06.07 16:52 
Benutze doch mal die Methode FieldByName

Dies würde dann so aussehen:

ausblenden Delphi-Quelltext
1:
TextBox1.Text := Query.FieldByName('Systemname').AsString;					


Dann müsste es eigentlich gehen.

Mit freundlichen Grüßen
JensLaskowski

_________________
Nichtstun macht nur dann Spaß, wenn man eigentlich viel zu tun hätte.
bobi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 45

Windoof XP Pro.
Delphi 2006 .NET
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 168

Win XP
BDS 2006 Architect
BeitragVerfasst: Mo 25.06.07 13:05 
Könntest du mal den Code posten, dann kann ich das auch nachvollziehen.

Mit freundlichen Grüßen
JensLaskowski

_________________
Nichtstun macht nur dann Spaß, wenn man eigentlich viel zu tun hätte.
bobi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 45

Windoof XP Pro.
Delphi 2006 .NET
BeitragVerfasst: Mo 25.06.07 13:08 
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 168

Win XP
BDS 2006 Architect
BeitragVerfasst: Mo 25.06.07 18:18 
user profile iconbobi hat folgendes geschrieben:
ausblenden 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

_________________
Nichtstun macht nur dann Spaß, wenn man eigentlich viel zu tun hätte.
bobi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 45

Windoof XP Pro.
Delphi 2006 .NET
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: 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:
www.jasocul.de/html/delphi_2005.html

Datenbanken mit .NET sind einfach zum Kotzen und nicht zu empfehlen
bobi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 45

Windoof XP Pro.
Delphi 2006 .NET
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 45

Windoof XP Pro.
Delphi 2006 .NET
BeitragVerfasst: 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.


ausblenden 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