eisblume Geschrieben 1. März 2010 Geschrieben 1. März 2010 Hallo zusammen! Ich hänge schon seit einiger Zeit an einem Problem und ich hoffe, dass ihr mir helfen könnt: Ich hab eine Access-Datenbank mit mehreren Tabellen und diese will ich nun auf einen SQLServer 2008 migrieren. Die Tabellen sind alle unterschiedlich aufgebaut und unterschiedlich groß. Das Auslesen der Daten funktioniert einwandfrei. Mein Problem ist nun der 'INSERT INTO'-Befehl. Kann mir da jemand bitte helfen?! Vielen Dank!!
eisblume Geschrieben 1. März 2010 Autor Geschrieben 1. März 2010 (bearbeitet) Hui! Danke für die schnelle Reaktion!! Mein Problem genau ist, dass mein bei dem INSERT INTO ja mit Parametern arbeiten muss. Das hab ich im Internet gefunden: insertCmd.Parameters.Add("@FirstName", SqlDbType.NVarChar, 10, FirstName") Ich hab keine Ahnung, wie ich die einzelnen Typen ermitteln kann, da sich in den unterschiedlichen Tabellen unterschiedliche Spalten und Werte befinden. Bearbeitet 1. März 2010 von eisblume
lbm1305 Geschrieben 1. März 2010 Geschrieben 1. März 2010 Mein Problem genau ist, dass mein bei dem INSERT INTO ja mit Parametern arbeiten muss. Das hab ich im Internet gefunden: Die Aussage ist so nicht richtig. Die eigentliche SQL-Anweisung lautet (ein Beispiel): INSERT INTO Personen (Name, Vorname) VALUES ('Mustermann','Max'); Zur Not kann man(n) sich das Schema der Tabelle(n) auslesen. Darüber kommt man an die Datentypen der Spalten.
eisblume Geschrieben 1. März 2010 Autor Geschrieben 1. März 2010 So hab ich mir das ursprünglich auch gedacht, aber dann bekomm ich folgende Fehlermeldung: "Ungültiger Objektname 'neueTabelle' ". Aber der Name der Tabelle stimmt . Hast du mir ein Code-Beispiel dazu?
lbm1305 Geschrieben 1. März 2010 Geschrieben 1. März 2010 So hab ich mir das ursprünglich auch gedacht, aber dann bekomm ich folgende Fehlermeldung: "Ungültiger Objektname 'neueTabelle' ". Aber der Name der Tabelle stimmt . Hast du mir ein Code-Beispiel dazu? Die neue Tabelle existiert auch? Ein INSERT fügt in eine bestehende Tabelle ein. Code gebe ich nicht gern vor, wo wäre denn da der Lerneffekt? ;-) Außerdem gibt es da eine große Suchmaschine, die Dir bei den passenden Suchbegriffe mehr als eine Antwort geben wird.
eisblume Geschrieben 1. März 2010 Autor Geschrieben 1. März 2010 Ja, die Tabelle existiert!! - Darüber hinaus besitzt die neue Tabelle auch die gleich Struktur wie die alte... . Als ich nach Lösungen geschaut hab, bin ich auf die Sache mit den Parametern gekommen, aber damit kann ich auch nichts anfangen. Bin am Rand der Verzweiflung :'(
lbm1305 Geschrieben 1. März 2010 Geschrieben 1. März 2010 Kannst Du den Code vom Erstellen der Connection bis hin zum Absenden des Commands posten? Passwörter können ausgeblendet werden. Funktioniert der INSERT Befehl auf dem Server (SQL Management Console)?
TDM Geschrieben 2. März 2010 Geschrieben 2. März 2010 (bearbeitet) Leerpost. Bearbeitet 2. März 2010 von TDM Verlesen...
eisblume Geschrieben 2. März 2010 Autor Geschrieben 2. März 2010 Das ist nicht so einfach, da das Ganze ein bisschen komplexer aufgebaut ist... Aber das Aufbauen der Connection, sowie das Auslesen der Daten funktiontiert. An dieser Stelle hängt es nun (zur Info strFields und strValues sind String() ): Dim strInsert As String = "INSERT INTO " & getDatenbankname() & ".tbl" & Tabellenname & " (" & strFields & ") VALUES (" & strValues & ");" Debug.Print(strInsert) und herauskommt: INSERT INTO Projekt.tblKunde ('Name', 'Vorname', 'Telefon', 'BLZ', 'Bank') VALUES ('Maier', 'Peter', '0801/1234', '12345608', 'Test Bank eG'); und dazu die schöne Fehlermeldung: Ungültiger Objektname 'Projekt.tblKunde'
TDM Geschrieben 2. März 2010 Geschrieben 2. März 2010 Ist der Datenbankname "Projekt" oder der Owner? (Bin etwas verwirrt, durch die Funktion "getDatenbankname") Funktioniert es vielleicht mit einem voll qualifierten Objektnamen (DATENBANKNAME.OWNER.TABELLENNAME)?
lbm1305 Geschrieben 2. März 2010 Geschrieben 2. März 2010 Ist der Datenbankname "Projekt" oder der Owner? (Bin etwas verwirrt, durch die Funktion "getDatenbankname") Funktioniert es vielleicht mit einem voll qualifierten Objektnamen (DATENBANKNAME.OWNER.TABELLENNAME)? Dem würde ich mich jetzt erst mal anschließen. Zusätzlich noch die Frage(n): 1.) Funktioniert dieser String (INSERT INTO...) auch auf dem Server, wenn Du Ihn per Management-Konsole eingegeben bzw. kopiert hast? 2.) Zweiter Weg wäre, dieses Insert-Kommando als Stored Procedure auf dem Server abzulegen. Übergabe-Parameter wären da der Tabellenname und die zuzufügenden Values :-)
eisblume Geschrieben 2. März 2010 Autor Geschrieben 2. März 2010 Ich habs.... so viel Dummheit sollte bestraft werden... *kopfschlag* :upps Ich darf die Feldbezeichnung nicht in Hochkommata setzen. Trotzdem Danke an alle ! :valen
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden