"We are back" « oc.at

SQL Datenbank - Statement - Ausführung unter VB

c147258 04.08.2005 - 08:17 614 3
Posts

c147258

- - - - - - -
Avatar
Registered: Jul 2003
Location: AT/VIE
Posts: 1483
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

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
mach' mal um alle Feldnamen Backticks (`)

c147258

- - - - - - -
Avatar
Registered: Jul 2003
Location: AT/VIE
Posts: 1483
thx..habs schon

es gibt keine DOUBLE Werte bei MSSQL...

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Zitat von c147258
thx..habs schon

es gibt keine DOUBLE Werte bei MSSQL...
mist - wie peinlich, das hätte mir auch auffallen müssen :(
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz