2

このクエリが呼び出されると、実行時に構文エラーが発生し続けます。

adoquery1.Active := false;
adoquery1.SQL.Clear;
SQLQuery := 'INSERT INTO Comics ';
SQLQuery := SQLQuery + '(Name,Issue,Series,Volume,Poster,';
SQLQuery := SQLQuery + 'Desc,Writer,Artist,Read,Link,Extra) ';
SQLQuery := SQLQuery + 'VALUE('+ quotedstr(SeriesName+' '+IssueNumber);
SQLQuery := SQLQuery + ','+ quotedstr(IssueNumber);
SQLQuery := SQLQuery + ','+ quotedstr(SeriesName);
SQLQuery := SQLQuery + ','+ quotedstr(VolumeNumber);
SQLQuery := SQLQuery + ','+ quotedstr(Poster);
SQLQuery := SQLQuery + ','+ quotedstr(Desc);
SQLQuery := SQLQuery + ','+ quotedstr(Writer);
SQLQuery := SQLQuery + ','+ quotedstr(Artist);
SQLQuery := SQLQuery + ','+ quotedstr(haveRead);
SQLQuery := SQLQuery + ','+ quotedstr(filelink);
SQLQuery := SQLQuery + ','+ quotedstr(Extra);
SQLQuery := SQLQuery + ')';
memo1.Text := SQLQuery;
adoquery1.SQL.Add(SQLQuery);
adoquery1.Active := true;

memo1.text = sqlqueryを実行すると、問題ないように見えますが、何か提案はありますか?これは私がmemo1.textで取得したものです。

INSERT INTO Comics (Name,Issue,Series,Volume,Poster,Desc,Writer,Artist,Read,Link,Extra VALUE('xmen 8','8','xmen','1','na','Some Description','BOBwriter','BOBArtist','Yes','C:\Comics\xmen8.cbr','Some Extra info')
4

3 に答える 3

5

Descは予約語なので、使用する[Desc]か、バッククォートで囲む必要があります(使用しているデータベースがわかりません)。詳細:そうあるべきであり、そうではないと
思います。VALUES(VALUE(

INSERT INTO Comics 
    (Name, Issue, Series, Volume, Poster, [Desc],
     Writer, Artist, [Read], Link, Extra) 
VALUES
    ('xmen 8', '8', 'xmen', '1', 'na', 'Some Description',
     'BOBwriter', 'BOBArtist', 'Yes', 'C:\Comics\xmen8.cbr','Some Extra info')
于 2012-05-24T06:37:41.247 に答える
3

予約語 DESCをで囲むbrackets

adoquery1.Active := false;
adoquery1.SQL.Clear;
SQLQuery := 'INSERT INTO Comics ';
SQLQuery := SQLQuery + '(Name,Issue,Series,Volume,Poster,';
SQLQuery := SQLQuery + '[Desc],Writer,Artist,[Read],Link,Extra) ';
SQLQuery := SQLQuery + 'VALUES ('+ quotedstr(SeriesName+' '+IssueNumber);
SQLQuery := SQLQuery + ','+ quotedstr(IssueNumber);
SQLQuery := SQLQuery + ','+ quotedstr(SeriesName);
SQLQuery := SQLQuery + ','+ quotedstr(VolumeNumber);
SQLQuery := SQLQuery + ','+ quotedstr(Poster);
SQLQuery := SQLQuery + ','+ quotedstr(Desc);
SQLQuery := SQLQuery + ','+ quotedstr(Writer);
SQLQuery := SQLQuery + ','+ quotedstr(Artist);
SQLQuery := SQLQuery + ','+ quotedstr(haveRead);
SQLQuery := SQLQuery + ','+ quotedstr(filelink);
SQLQuery := SQLQuery + ','+ quotedstr(Extra);
SQLQuery := SQLQuery + ')';
memo1.Text := SQLQuery;
adoquery1.SQL.Add(SQLQuery);
adoquery1.Active := true;
于 2012-05-24T06:41:29.093 に答える
2

Valuesの代わりに使用してvalueください。
DescとReadは予約済みのキーワードなので、角かっこで囲みます。キーワードの
前に括弧を閉じ続けるのを忘れました。Values

INSERT INTO Comics 
            (Name, 
             Issue, 
             Series, 
             Volume, 
             Poster, 
             [Desc], 
             Writer, 
             Artist, 
             [Read], 
             Link, 
             Extra) 
VALUES     ('xmen 8', 
            '8', 
            'xmen', 
            '1', 
            'na', 
            'Some Description', 
            'BOBwriter', 
            'BOBArtist', 
            'Yes', 
            'C:\Comics\xmen8.cbr', 
            'Some Extra info') 
于 2012-05-24T06:42:20.713 に答える