Einzelnen Beitrag anzeigen

Janek76
(Gast)

n/a Beiträge
 
#8

Re: Insert über 2 Datenbanken

  Alt 10. Nov 2005, 18:34
OK. Hab mich jetzt doch entschieden, es umzusetzen, in der Hoffnung, daß die Sicherheitseinstellungen keine Probleme bereiten werden. Die Performance ist jedenfalls geil. 30000 Datensätze werden so mal eben im Bruchteil einer Sekunde rübergeschaufelt, ohne daß man was merkt, während bei den Delphi-Zuweisungen alles aufwendig durchgerödelt wird.

SQL-Code:
DECLARE @qIDStart INT, @qIDEnd INT
SET @qIDStart=13
SET @qIDEnd=333

INSERT INTO
OPENDATASOURCE( 'Microsoft.Jet.OLEDB.4.0','Data Source="C:\Target.mdb"; User ID=Admin;Password=' )...
TargetTable(Field1,Field2,Field3)

SELECT Field1, Field2, Field3 FROM Table1
WHERE ((Field1 >= @qIDStart) AND (Field1 <= @qIDEnd))
Ich habe zwar keine Ahnung, wofür die 3 Punkte hinter OPENDATASOURCE stehen (für meinen lokalen Rechner?), aber sie müssen genauso hingeschrieben werden.

Probleme haben mir die Parameter bereitet, da in Delphi im CommandText einer ADO-SQL-Abfrage Parameter mit Doppelpunkt angegeben werden (arameter). So verwunderte es nicht, daß der erste Parameter den Namen '\Target.mdb"; User ID=Admin;Password=' hatte, was natürlich zu keiner gültigen Abfrage führen konnte. Da ich auch keine Ahnung hatte, wie man den Doppelpunkt in der Pfadangabe neutralisieren kann, habe ich auf Delphiparameter ganz verzichtet und sie mit ParamCheck einfach abgeschaltet.

Delphi-Quellcode:
ADOCommand1.ParamCheck := false;
ADOCommand1.CommandText := QryString;
ADOCommand1.Execute;
Dafür habe ich dann, wie oben, Variablen deklariert und mir einen CommandText aus meinen Delphivariablen zusammengebastelt.

@marabu: Also Vielen Dank nochmal für den Hinweis, ich glaube ich wäre da so schnell nicht drauf gekommen. (...bin immerhin auch noch Anfänger).

Gruß,

Janek76
  Mit Zitat antworten Zitat