"Maximum Tables in SELECT" Fehler bei SQL INSERT
Matthias Francke
- asp.net
Mahlzeit!
Ich versuche über das folgenden Kommando
sql="INSERT INTO literatur VALUES ('"& nname & "','" & Vname & "','" & eautor & "','" & zautor & "','" & cautor & "','" & typ & "','" & journal & "','" & jahr & "','" & vol & "','" & nr & "','" & seiten & "','" & titel & "','" & foerderung & "','" & verfahren & "','" & organsystem & "','" & anatomie & "','" & thema & "','" & empfaenger & "','" & foerderer & "');"
Daten in eine Tabelle zu schreiben und bekomme immer die Meldung
Microsoft OLE DB Provider for ODBC Drivers- Fehler '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Anzahl der Abfragewerte und Zielfelder stimmt nicht überein.
Ich habe nun über conn.properties raus gefunden, daß der Wert in "Maximum Tables in SELECT" auf 16 steht.
Kann das der Grund für die Fehlermeldung sein?
Wenn ja wie kann ich ihn am besten umgehen?
Ich würde mich freuen wenn mir jemand einen ernstgemeinten Tip geben könnte.
Vielen Dank im Voraus
Matthias
Hallo,
sql="INSERT INTO literatur VALUES ('"& nname & "','" & Vname & "','" & eautor & "','" & zautor & "','" & cautor & "','" & typ & "','" & journal & "','" & jahr & "','" & vol & "','" & nr & "','" & seiten & "','" & titel & "','" & foerderung & "','" & verfahren & "','" & organsystem & "','" & anatomie & "','" & thema & "','" & empfaenger & "','" & foerderer & "');"
Ändere das mal in:
sql="INSERT INTO literatur (<spalte1>, <spalte2>, ...) VALUES ('"& nname & "','" & Vname & "','" & eautor & "','" & zautor & "','" & cautor & "','" & typ & "','" & journal & "','" & jahr & "','" & vol & "','" & nr & "','" & seiten & "','" & titel & "','" & foerderung & "','" & verfahren & "','" & organsystem & "','" & anatomie & "','" & thema & "','" & empfaenger & "','" & foerderer & "');"
Auch wenns normalerweise so geht, könnte dies dein Problem sein,
wenn es IDENTITY Werte, ... gibt. Für <spalte1>, ... musst du
übrigens die Spaltennamen deiner Tabelle einfügen. Und darauf
achten, dass Spalten und der Wert an der jeweils übereinstimmen
Position stehen. Hier hilft die evtl. eine andere Formatierung.
strSQL = "INSERT INTO tabelle (" & _
"spalte1, " & _
"spalte2, " & _
"spalte3 " & _
") VALUES (" & _
"'" & wert1 & "', " & _
"'" & wert2 & "', " & _
"'" & wert3 & "')"
Ich habe nun über conn.properties raus gefunden, daß der Wert in "Maximum Tables in SELECT" auf 16 steht.
Kann das der Grund für die Fehlermeldung sein?
Nein, wenn der Wert "MAXIMUM Columns in INSERT" heissen würde.
Tschau, Stefan
Hallo,
sql="INSERT INTO literatur VALUES ('"& nname & "','" & Vname & "','" & eautor & "','" & zautor & "','" & cautor & "','" & typ & "','" & journal & "','" & jahr & "','" & vol & "','" & nr & "','" & seiten & "','" & titel & "','" & foerderung & "','" & verfahren & "','" & organsystem & "','" & anatomie & "','" & thema & "','" & empfaenger & "','" & foerderer & "');"
Ändere das mal in:
sql="INSERT INTO literatur (<spalte1>, <spalte2>, ...) VALUES ('"& nname & "','" & Vname & "','" & eautor & "','" & zautor & "','" & cautor & "','" & typ & "','" & journal & "','" & jahr & "','" & vol & "','" & nr & "','" & seiten & "','" & titel & "','" & foerderung & "','" & verfahren & "','" & organsystem & "','" & anatomie & "','" & thema & "','" & empfaenger & "','" & foerderer & "');"
Auch wenns normalerweise so geht, könnte dies dein Problem sein,
wenn es IDENTITY Werte, ... gibt. Für <spalte1>, ... musst du
übrigens die Spaltennamen deiner Tabelle einfügen. Und darauf
achten, dass Spalten und der Wert an der jeweils übereinstimmen
Position stehen. Hier hilft die evtl. eine andere Formatierung.
strSQL = "INSERT INTO tabelle (" & _
"spalte1, " & _
"spalte2, " & _
"spalte3 " & _
") VALUES (" & _
"'" & wert1 & "', " & _
"'" & wert2 & "', " & _
"'" & wert3 & "')"
Ich habe nun über conn.properties raus gefunden, daß der Wert in "Maximum Tables in SELECT" auf 16 steht.
Kann das der Grund für die Fehlermeldung sein?
Nein, wenn der Wert "MAXIMUM Columns in INSERT" heissen würde.
Tschau, Stefan
Hallo Stefan,
ich hab den command folgendemaßen abgeändert:
sql="INSERT INTO literatur (nname ,vname, eautor, zautor, cautor ,typ ,journal ,jahr ,vol ,nr ,seiten ,titel ,foerderung ,verfahren ,organsystem ,anatomie ,thema ,empfaenger ,foerderer) VALUES ("
sql = sql & "'" & nname & "',"
sql = sql & "'" & vname & "',"
sql = sql & "'" & eautor & "',"
sql = sql & "'" & zautor & "',"
sql = sql & "'" & cautor & "',"
sql = sql & "'" & typ & "',"
sql = sql & "'" & journal & "',"
sql = sql & "'" & jahr & "',"
sql = sql & "'" & vol & "',"
sql = sql & "'" & nr & "',"
sql = sql & "'" & seiten & "',"
sql = sql & "'" & titel & "',"
sql = sql & "'" & foerderung & "',"
sql = sql & "'" & verfahren & "',"
sql = sql & "'" & organsystem & "',"
sql = sql & "'" & anatomie & "',"
sql = sql & "'" & thema & "',"
sql = sql & "'" & empfaenger & "',"
sql = sql & "'" & foerderer & "');"
und bekomme nun die folgenden Meldung:
[Microsoft][ODBC Microsoft Access Driver] Die INSERT INTO-Anweisung enthält folgenden unbekannten Feldnamen: 'foerderer'. Stellen Sie sicher, dass Sie den Namen richtig eingegeben haben, und führen Sie dann die Operation nochmals aus.
Einen Fehler kann ich da aber leider nicht erkennen.
Wäre nett wenn Du mir noch einmal einen kleinen Hinweis geben könntest.
Vielen Dank
Matthias
Hallo,
[Microsoft][ODBC Microsoft Access Driver] Die INSERT INTO-Anweisung enthält folgenden unbekannten Feldnamen: 'foerderer'. Stellen Sie sicher, dass Sie den Namen richtig eingegeben haben, und führen Sie dann die Operation nochmals aus.
Einen Fehler kann ich da aber leider nicht erkennen.
Der Fehler steht doch da. Du hast eine Spalte mit dem Namen
"forderer" in deinem SQL Statement stehen. In der Tabelle
die du updaten willst, findest Access diese Spalte aber
nicht.
Tschau, Stefan