Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi wie kann ich rausbekommen ob eine variable string,integer,bo (https://www.delphipraxis.net/124101-wie-kann-ich-rausbekommen-ob-eine-variable-string-integer-bo.html)

clock50 14. Nov 2008 12:10

Datenbank: mysql • Zugriff über: zeos

wie kann ich rausbekommen ob eine variable string,integer,bo
 
Hallo Leute,

wenn ich was schreibe, habe ich ein Problem:

also ich habe bei einen neuen projekt ein problem mit der zeit. ich habe mit einer mysql db eine datenerfassung und auswertung realisiert soweit ok allerdings benötigt die auswertung zu viel zeit. deshalb habe ich mir gedacht ich könnte ja eine db im speicher anlegen (als record) auch ok, so nun habe ich in meinem record 'db' die tabellen (arrayrecords t1,t2,t3,...) die tabellen haben nun unterschiedliche felder (integer,string,...) nun will ich eine procedur schreiben die mir die daten in die tabellen einfügt. so wie ich es kenne müsste ich für jede tabelle eine eigene procedur haben. ist ja auch kein problem an sich, nur bringt es mich zu der frage :kann ich nicht eine procedur in der ich den typ des feldes in der tabelle abfragen kann? dann könnte meine procedur etwa so beginnen :
Delphi-Quellcode:
procedure einfuegen(t : string, f : array[0..20] of string);
t = name der tabelle f = daten, so übergebe ich alle werte als string die ich einfügen will. die werte müsste ich jetzt wenn nötig umwandel. also wie kann ich rausbekommen ob eine variable string,integer,boolean oder float ist?

jfheins 14. Nov 2008 12:14

Re: wie kann ich rausbekommen ob eine variable string,intege
 
Also ich will ja nicht wissen, wievile Millionen Datensätze in deiner DB sind, dass sie langsam wird ... :mrgreen:

Aber zu deiner Funktion: Da würde sich der Datentyp Variant anbieten, der kann sozusagen einen beliebigen Wert Typensicher beinahlten ;)

fnhofm 14. Nov 2008 12:36

Re: wie kann ich rausbekommen ob eine variable string,intege
 
Hallo,

Du könntest in der Prozedur einfügen auch ein array of cont (TVarRec)verwenden.
Dann könntest Du den Typ für jeden übergebenen Wert abfragen.

Gruß

clock50 14. Nov 2008 12:45

Re: wie kann ich rausbekommen ob eine variable string,intege
 
hallo und danke aber leider habe ich nur d5 und Varaint,cont geht noch nicht.

littleDave 14. Nov 2008 12:47

Re: wie kann ich rausbekommen ob eine variable string,intege
 
Ich denke, dass sie Variant und array of const meinen ;-)

fnhofm 14. Nov 2008 12:49

Re: wie kann ich rausbekommen ob eine variable string,intege
 
Hoppla,

ja ich hab array of const gemeint. :oops:

nahpets 14. Nov 2008 12:54

Re: wie kann ich rausbekommen ob eine variable string,intege
 
Hallo,

mal etwas anders?

Delphi-Quellcode:
Var
  t : TTable;
begin
  // create und co
  t.FieldByName('ID').AsString := f[0];
  t.FieldByName('start').AsString := f[1];
...
  t.FieldByName('letztesfeld').AsString := f[20];
  t.Post;
Das funktioniert auch, wenn ID = Integer, sofern der String in f[0] einen Integer enthält, gilt analog auch für Float...
Bei boolschen Feldern sollte es auch funktionieren, sofern in f Wahr, Falsch, True oder False steht.
Variant ist in diesem Fall übrigens auch keine schlechte Idee.

Mit kbmMemTable kannst Du auf diese Weise im Arbeitsspeicher Tabellen vorhalten und wie "normale" Datenbanktabellen behandeln.

Sir Rufo 14. Nov 2008 13:28

Re: wie kann ich rausbekommen ob eine variable string,intege
 
Schau doch mal, ob es in Delphi 5 schon die Format-Funktion gibt.
Die macht im Prinzip das, was du möchtest. Das Ergebnis ist ein anderes, aber die Parameter-Übergabe und Auswertung ist gleich.
Dann kannst Du auch in den Sourcen nachsehen, was da bei Format passiert und deine Funktion analog dazu aufbauen.

cu

Oliver

neuling31 15. Nov 2008 15:41

Re: wie kann ich rausbekommen ob eine variable string,intege
 
Dein Thread-Titel ist ein bisschen verwirrend :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz