SQL Datenbank - Statement - Ausführung unter VB

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/sql_datenbank_statement_ausfuehrung_unter_vb_146965/page_1 - zur Vollversion wechseln!


c147258 schrieb am 04.08.2005 um 08:17

AUSFÜHRUNG:

Code:
Public Sub CopyDB(source As Database, target As ADODB.Connection)
   Dim tdf As TableDef
   Dim fld As Field
   Dim sql As String, tn
   
   ' Alle Tabellen in der Zieldatenbank anlegen
   For Each tdf In source.TableDefs
      If UCase(Left(tdf.Name, 4)) <> "MSYS" Then
         sql = ""
         
         ' Feldliste erstellen
         For Each fld In tdf.Fields
            Select Case fld.Type
               Case dbBoolean:
                  tn = "BIT"
                  
               Case dbByte, dbBigInt, dbInteger, dbLong:
                  tn = "INTEGER"
   
               Case dbDate, dbTime, dbTimeStamp:
                  tn = "DATETIME"
   
               Case dbDecimal, dbDouble, dbFloat, dbCurrency, dbNumeric, dbSingle:
                  tn = "DOUBLE"
   
               Case dbChar, dbText, dbMemo:
                  tn = "TEXT"

               Case dbGUID, dbBinary, dbVarBinary, dbLongBinary:
                  tn = "BINARY"
                  
               Case Else:
                  Err.Raise vbObjectError, "frmODBCConvert::CopyDB", "Illegal data field type"
            End Select
         
            sql = sql & IIf(sql <> "", ", ", "") & fld.Name & " " & tn
         Next fld
      
         sql = "CREATE TABLE " & tdf.Name & " (" & sql & ")"
      
        Debug.Print sql
         target.Execute sql  -> FEHLER!! (bzw. vorher schon)
      End If
   Next tdf
End Sub

AUFRUF:
Code:
   Set con = New ADODB.Connection
    con.ConnectionString = "Provider=SQLOLEDB.1; User ID=dbo; Password=chk24; " & _
                    "Integrated Security=SSPI; Initial Catalog=chk24; Data Source=127.0.0.1"
   
   con.Open
   ' Datenbanken exportieren
   CopyDB dbsGlobalArtikel, con

FEHLER: Laufzeitfehler
Zeile 1: Falsche Syntax in der Nähe von ','.

Wenn ich debugge zeigt er mir eben an das beim Ausführen des Befehls target.Execute sql ein Fehler auftritt.

Folgendes ist im Direktfenster
Code:
CREATE TABLE Artikel (Nummer TEXT, Mengeneinheit_Nummer TEXT, NummerNeu TEXT, NummerAlt TEXT, Zeichnung_Nummer TEXT, Lieferzeit INTEGER, ArtikelGruppe_Nummer TEXT, ArtikelStatus_Nummer TEXT, ArtikelArt_Nummer TEXT, _Mod DATETIME, Ursprungsland_Nummer TEXT, ZolltarifNr TEXT, Gewicht DOUBLE, Gewichtseinheit_Nummer TEXT, Erloeskonto TEXT, _MODUser TEXT, _INSUser TEXT)

Sollte doch eigentlich passen, aber irgendwie bekomme ich den Fehler nicht weg :(


watchout schrieb am 04.08.2005 um 12:35

mach' mal um alle Feldnamen Backticks (`)


c147258 schrieb am 04.08.2005 um 12:49

thx..habs schon

es gibt keine DOUBLE Werte bei MSSQL...


watchout schrieb am 05.08.2005 um 13:56

Zitat von c147258
thx..habs schon

es gibt keine DOUBLE Werte bei MSSQL...
mist - wie peinlich, das hätte mir auch auffallen müssen :(




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025