Hallo zusammen,
folgendes Problem: Ich möchte eine Tabelle aus einer
Access-Datenbank in eine
SQL Server-Datenbank kopieren.
Ich habe schon zwei Wege versucht.
1. Eine CREAT TABLE - SQLAnweisung basteln und diese ausführen. Das scheitert nur leider daran, dass die Informationen, wie z. B. den dDtentyp eines Feldes, in die Anweisung zu bekommen. Denn ich kenne keine Methode, die einem den Datentyp eines Feldes als String zurückgibt.
2. Mit Fielddefs und zwar folgendermaßen:
Delphi-Quellcode:
// Schritt 1: Feldstruktur kopieren
with SQLDataset do
begin
FieldDefs.Clear;
for i := 0 to AccessDataset.FieldDefs.Count - 1 do
begin
with FieldDefs.AddFieldDef do
begin
Name := AccessDataset.FieldDefs[i].Name;
DisplayName := AccessDataset.FieldDefs[i].DisplayName;
Attributes := AccessDataset.FieldDefs[i].Attributes;
DataType := AccessDataset.FieldDefs[i].DataType;
Precision := AccessDataset.FieldDefs[i].Precision;
Required := AccessDataset.FieldDefs[i].Required;
Size := AccessDataset.FieldDefs[i].Size;
end;
end;
// Schritt 2: RecordSet anlegen
CreateDataSet;
//
end;
// Schritt 3: Daten kopieren
with AccessDataset do
begin
First;
while not Eof do
begin
SQLDataset.Append;
for i := 0 to SQLDataset.FieldCount - 1 do
begin
SQLDataset.Fields[i].Value := Fields[i].Value;
end;
SQLDataset.Post;
Next;
end;
end;
// Schritt 4: Kopierte Daten anzeigen
SQLDataset.Active := True;
end;
Auf diese Weiße wird die Tabelle aber nicht in der Datenbank, sondern nur im Arbeitsspeicher angelegt.
Kann mir irgend jemand da draußen weiterhelfen? Häng nämlich schon lange an diesem Problem und bin langsam am Verzweifeln.
Vielen Danke schon mal im Voraus.
Gruß Solid01.
[edit=r_kerber]Code- durch Delphi-Tags ersetzt. Mfg, r_kerber[/edit]