0

さまざまな値を連結していると、次のSQLステートメントが表示されます。

INSERT INTO Ads (Position, Type, AdType, Link, Width, Height, Path, Korder ) VALUES ('left','1','left1','',1024,768,'FILE1',1)

ここにはエラーは表示されませんが、

MicrosoftJETデータベースエンジンエラー「80040e14」

INSERTINTOステートメントの構文エラー。

/adm/uploadAdPic.asp、68行目

sql="INSERT INTO Ads (Position, Type, AdType, Link, Width, Height, Path, Korder )"
            sql=sql & " VALUES "
            sql=sql & "('" & position & "',"
            sql=sql & "'" & adType & "',"
            sql=sql & "'" & position & adType & "',"
            sql=sql & "'" & link & "',"
            sql=sql & "" & width & ","              
            sql=sql & "" & height & ","
            sql=sql & "'" & path & "',"
            //sql=sql & "" & korder & ","
            sql=sql & "" & korder & ")"
            //sql=sql & "0)"

            Response.Write(sql)

            //on error resume next
            conn.Execute sql,recaffected      //THIS IS LINE 68

構文エラーを見つけるのを手伝ってくれませんか。

編集:私は自分で解決策を見つけましたが、それは以下の答えにも含まれています。位置は予約語です。挿入ステートメントを変更して別のフィールドを削除しようとしましたが、Positionフィールドでエラーが発生することがわかりました。そこで、Positionの名前をVertPosに変更すると、機能します。

4

2 に答える 2

2

位置はJetSQLの予約語です。[位置]に変更してみてください。

一般的な推奨事項として、すべての列名に[]を追加します。

    sql="INSERT INTO Ads ([Position], [Type], [AdType], [Link], [Width], [Height], [Path], [Korder] )"
                sql=sql & " VALUES "
                sql=sql & "('" & position & "',"
                sql=sql & "'" & adType & "',"
                sql=sql & "'" & position & adType & "',"
                sql=sql & "'" & link & "',"
                sql=sql & "" & width & ","              
                sql=sql & "" & height & ","
                sql=sql & "'" & path & "',"
                //sql=sql & "" & korder & ","
                sql=sql & "" & korder & ")"
                //sql=sql & "0)"

                Response.Write(sql)

                //on error resume next
                conn.Execute sql,recaffected      //THIS IS LINE 68
于 2013-01-01T21:32:19.750 に答える
1

1)エラーは、列名の一部がたまたまMSSQLキーワードであるためです。

' SUGGESTED CHANGE:
INSERT INTO Ads (
  [Position], [Type], [AdType], [Link], [Width], [Height], [Path], [Korder]) 
VALUES ('left','1','left1','',1024,768,'FILE1',1)

2)「裸の挿入」の代わりにコマンドオブジェクトを使用する方がおそらくはるかに良いでしょう:

Here's an example that shows how to use "objCom.parameters.append()":
于 2013-01-01T21:40:57.200 に答える