Entwickler-Ecke

Programmierwerkzeuge - ADOTable -> DBGrid ?


D. Annies - So 19.07.09 19:50
Titel: ADOTable -> DBGrid ?
Hi, Delpher,

wie bekomme ich die Daten von einem ADOTable (Tablename ist vergeben im OI) in einem DBGrid zu sehen?

Ist wahrscheinlich nicht schwer ...

Gruß, Detlef


Delete - So 19.07.09 21:10

Ich mach zwar nix mit ADO, aber geht das nicht "ganz normal" per Datasource dazwischen?


D. Annies - So 19.07.09 21:21

Hi, Deddy,

jo, das hatte ich auch gedacht, dadurch, dass ich active auf true gesetzt habe, sehe ich die Daten auch im Formular, aber dann geht's irgendwie in die Grütze, und das bei diesem Code:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
dbgrid2.datasource.DataSet := ADOTable2;
  showmessage('re unten: '+ ADOtable2.TableName);  // wird noch angezeigt zur Laufzeit

  maxm := 0; maxw := 0; minm := 2000; minw := 2000;
  ADOtable2.First;
  repeat
    if ADOtable2.FieldByName('sex').asstring = 'w' then
      if ADOtable2.FieldByName('alt').asinteger > maxw then
        maxw := ADOtable2.FieldByName('alt').asinteger;
    if ADOtable2.FieldByName('sex').asstring = 'm' then
      if ADOtable2.FieldByName('alt').asinteger > maxm then
        maxm := ADOtable2.FieldByName('alt').asinteger;
    if ADOtable2.FieldByName('sex').asstring = 'w' then
      if ADOtable2.FieldByName('alt').asinteger < minw then
        minw := ADOtable2.FieldByName('alt').asinteger;
    if ADOtable2.FieldByName('sex').asstring = 'm' then
      if ADOtable2.FieldByName('alt').asinteger < minm then
        minm := ADOtable2.FieldByName('alt').asinteger;
    ADOtable2.Next;
  until ADOtable2.Eof;
  showmessage('max_min ok');       // wird nicht mehr angezeigt zur Laufzeit


Hast du 'ne Idee?
Würde mich freuen, Detlef


Delete - So 19.07.09 22:16

Wie gesagt mache ich nichts mit ADO, aber ich frage mich, wieso Du eine ADOTable und keine Query nimmst, Minimum und Maximum könntest Du damit doch viel einfacher ermitteln.


D. Annies - So 19.07.09 22:37

Hi, Deddy,

jo, mach ich jetzt, der "Fehler" eben war der, dass man ab XP mit SP2 den ConnectionString und die Connection erst zur Laufzeit setzen darf und nicht mehr (wie normal) schon im OI. Da musst du erst mal drauf kommen - ich frage mich, ob ADO so eine gute Wahl war - gibt es eine (einfache) bessere?

Gruß, DetlefA


Delete - So 19.07.09 22:41

Von welcher DB reden wir denn? Zumindest für MS-Datenbanken ist ADO doch keine schlechte Wahl.


D. Annies - So 19.07.09 22:49

Es sind (leider) alte dBase-Tabellen.
Det


Delete - So 19.07.09 22:53

Holla, das ist ja nun der kleinste Nenner überhaupt nach Textdateien. Eine Umstellung kommt nicht in Frage?

Auch Det *g*


D. Annies - Mo 20.07.09 00:34

Doch, und wohin denn?
Det


Delete - Mo 20.07.09 09:23

Wenn es kostenlos sein soll, kann ich Dir Firebird empfehlen, den kannst Du sowohl als Embedded- wie auch als Client-/Server-Variante einsetzen. Letztendlich ist das aber eine Kosten- und Geschmacksfrage, ich will hier keinen Glaubenskrieg vom Zaun brechen.


D. Annies - Mo 20.07.09 09:40

Moin, deddy_äitsch,

habe ich mir gedacht, dass du so antwortest - natürlich hast du recht.
Aber es sollte so klein wie möglich sein, deshalb ja auch Turbo Delphi, und ohne BDE!

Gruß, Det


mkinzler - Mo 20.07.09 09:59

FireBird embedded oder SQLite sind do recht klein.


D. Annies - Mo 20.07.09 22:13

Jo, danke, Markus
Detlef