diwaffm
Goto Top

Problem mit multiplen INSERTS in MS-SQL Datenbank

Beim Versuch Daten per VB-Skript in eine MS-SQL Datenbank treten Fehler auf - ebenfalls beim manuellen Insert via SQL Server Management Konsole

hi Leute,

ich habe ein Skript, mit dem seit mehreren Jahren Daten aus einer lokalen Access-Tabelle auf einen MS-SQL Server geladen werden.
Probleme gab es damit bisher eigentlich keine - und wenn, dann lagen Sie an den Daten, wenn z.B. ein Anführungszeichen in einem Textfeld stand.

Diese Fehlerquellen habe ich inzwischen beseitigt.

Nun macht das Skript aber aktuell wieder Probleme:
Der IIS meldet "Falsche Syntax in der Nähe von 'Lauf'.
/Folder/dateiname.asp, line 141

In Zeile 141 steht
[code]
objRSSQL.open strSQL, objConSQL
[/code]

In der SQL-Anweisung (Inhalt von strSQL) gibt es aber weder ein Feld, das 'Lauf' heißt. Im einzufügenden Inhalt, könnte das aber durchaus vorkommen.
Deshalb habe ich mir die Werte von strSQL durch das Skript auflisten lassen und in einen Editor kopiert.
"Lauf" kommt in 408 INSERTs 190x vor.

Nun habe ich die INSERTs kopiert und in das SQL-Fenster der SQL-Management-Konsole kopiert. Nach bestätigung der Fehlermeldung "Analyse von Abfragetext nicht möglich" werden die Inserts aber abgearbeitet.
Bis nach einiger Zeit die Melding kommt "Fehlermeldung: Zeile 255: Falsche Syntax in der Nähe von 'Lauf'"

Nun steht in Zeile 255 nirgens das Wort "Lauf". Lediglich "lauf" als Wortbestandteil kommt vor.
Und wenn ich Zeile 255 einzeln ins SQL-Fenster kopiere, wird der Insert korrekt ausgeführt.

Kopiere ich anderer Zeilen einzeln, so werden diese auch korrekt ausgeführt.
Kopiere ich mehrere Zeilen, so werden einige korrekt ausgeführt, andere aber nicht. Wobei sich diese dann wieder importieren lassen, wenn ich sie einzeln ausführe oder in anderer Kombination.
So funktioneren z.B. die Zeilen 250 bis 259 ohne Problem - auch im "Paket".

So langsam weiß ich nicht mehr, wo ich noch suchen soll...

Any Ideas

Danke

Dirk

Content-Key: 175603

Url: https://administrator.de/contentid/175603

Printed on: April 25, 2024 at 15:04 o'clock

Member: MadMax
MadMax Nov 02, 2011 at 11:46:09 (UTC)
Goto Top
Hallo Dirk,

die fehlerhafte Zeile hast Du genau identifiziert nehme ich an (durch doppelklick auf die Fehlermeldung im Management Studio). Wenn die Daten nicht zu geheim sind, könntest Du diese Zeile und noch zwei, drei drumrum vielleicht mal hier zeigen, das vereinfacht die Sache vielleicht.

Ohne die Daten gesehen zu haben, könnte ich mir vorstellen, daß da irgendwo ein Hochkomma rumsteht, das da stört.

Gruß, Mad Max
Member: diwaffm
diwaffm Nov 02, 2011 at 11:54:39 (UTC)
Goto Top
Ich habe in der Zwischenzeit ein einfaches Fehlermanagement in das Skript eingebaut:

		ON ERROR RESUME NEXT
		objRSSQL.open strSQL, objConSQL
		nFehler=ERR.Number
		If nFehler = 0 THEN
                  response.write "Datensatz gespeichert"  
                ELSE
                  response.write "Fehler beim Speichern<br>"&strSQL  
                END IF

So habe ich mir die Zeilen ausgeben lassen, bei denen es zu einem Fehler kam.
Witzigerweise stimmten deren Zeilennummern nicht mit den im Management Studio angegebenen überein.

Fehlerursache waren, wie Du vermutest, 2 Hochkomma.
Diese lasse ich nun vor dem Speichern in HTML-Enteties übersetzen - und schon funktioniert es...

Merci

dirk