Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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!!

Geschrieben (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 von eisblume
Geschrieben

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.

Geschrieben

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?

Geschrieben
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.

Geschrieben

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 :'(

Geschrieben

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)?

Geschrieben

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'

Geschrieben

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)?

Geschrieben
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 :-)

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...