![]() |
Datenbank: MySQL, MSSQL, Access • Version: div. • Zugriff über: ADO
Tabellenstruktur in eine neue DB kopieren
Ich würde gerne das Ergebnis einer Abfrage in einer temp. Access-DB zwischenspeichern.
Jetzt möchte ich aber nicht die ganze Abfrage analysieren und einen entsprechenden CREATE TABLE erzeugen, der die Sprachfeinheiten von Access interpretiert. Dass muss auch wesentlich einfacher gehen, wenn man sich z.B. den Datenimport/-export vom MSSQL-Server anschaut. Der verbindet sich so quasi mit jeder DB (Hauptsache die Treiber sind da) und transportiert die Daten. So schon ausprobiert mit einer IBM-DB2 als Quelle und MySQL als Ziel. Ich kann mir nicht vorstellen, dass MS da die ganzen Dialekte in das Transport-Programm eingebaut hat (oder doch?) :gruebel: Wer weiss da was, oder wer hat dafür eine Lösung? |
Re: Tabellenstruktur in eine neue DB kopieren
Schau dir mal die MSSQL Funktion
![]() Im MSSQL kannst du damit dynamische Datenlinks zu externen Datenbanken (z.B. Access) erstellen. Einem SELECT INTO steht dann auch nichts mehr im Wege "richtungsweisendes" und ungetestetes Beispiel:
SQL-Code:
SELECT VORNAME,NAME,IRGENDWAS
FROM dbo.MeineMssqlTable INTO ( OPENDATASOURCE('OLEDB','Filename=c:\MeineAccessDB.mdb' ).EinNeuerTabellenName WHERE aktiv = 1 |
Re: Tabellenstruktur in eine neue DB kopieren
Zitat:
SQL-Code:
SELECT VORNAME,NAME,IRGENDWAS
INTO ( OPENDATASOURCE('OLEDB','Filename=c:\MeineAccessDB.mdb' ).EinNeuerTabellenName FROM dbo.MeineMssqlTable WHERE aktiv = 1 |
Re: Tabellenstruktur in eine neue DB kopieren
Ich suche eher etwas wie:
Code:
Und dann...
Private Sub Command1_Click()
Dim ADOtbl As New ADOX.Table Dim strCnn As String 'Neue Tabelle benennen ADOtbl.Name = "tblADOx" 'Neue Tabelle in DB einfügen Cat.Tables.Append ADOtbl End Sub
Code:
Das müsste eigentlich das sein, was ich suche, allerdings ist das die falsche Sprache :(
Private Sub Command1_Click()
Dim ADOCol As New ADOX.Column With ADOCol 'ParentCatolog ist zum Setzen der '.Properties notwendig Set .ParentCatalog = Cat 'Name der Spalte übergeben .Name = "NeueSpalte" 'Typ der Spalte übergeben (hier ein Textfeld) .Type = adVarWChar 'Feldgrößendefinitionen sind nur bei 'Textformat zulässig .DefinedSize = 255 'Standardwert If Not IsMissing(Default) Then .Properties("Default") = "Text eingeben" End If 'Eine leere Zeichenfolge ist erlaubt .Properties("Jet OLEDB:Allow Zero Length") = True 'Aufsteigende Sortierung .SortOrder = adSortAscending End With 'Neue Spalte an Tabelle übergeben Cat.Tables("MeineTabelle").Columns.Append ADOCol End Sub Und das mit dem ADOX als Unit habe ich auch nicht gefunden ... Wer kann da helfen? cu |
Re: Tabellenstruktur in eine neue DB kopieren
:-D
Selber helfen geht ja auch ... ![]() Das ist des Rätsels Lösung (wenigstens für Access). Ich werde das mal umsetzen und auch mit anderen Datenbanken ausprobieren. Die Erfahrungen werde ich dann hier mal niederschreiben. thanx Oliver |
Re: Tabellenstruktur in eine neue DB kopieren
Auch wenn es nicht ganz das ist, was du suchst ...
Ich möchte den Opendatasource Aufruf hier nicht falsch stehen lassen ..
SQL-Code:
Leider funktioniert das mit dem
SELECT * FROM
OPENDATASOURCE( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\meineAccessDB.mdb"')...eineAccessTabelle -- die drei Punkte vor dem Tabellennamen sind wichtig !
SQL-Code:
nicht so einfach wie erwartet. Daran muss ich noch feilen ...
SELECT *
INTO OPENDATASOURCE ..... FROM .... Schöne Grüße, Jens :hi: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:41 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-2025 by Thomas Breitkreuz