안녕하세요.
디비는 MySQL을 쓰고 있습니다.
데이터를 테이블에 집어넣으려고 하는데 자꾸 다음과 같은 에러 메세지가 뜨네요.
Project SCEDMS.exe raised exception class EDBEngineError with message 'General SQL
error.
[TCX][MyODBC]You have an error in your SQL syntax near 'values('aaa','bbb','Jacky
Hartnett','ccc')
'at line 2'. Process stopped. Use Step or Run to continue.
그런데 왜 이런 메세지가 뜨는지.... -.-
아마 문법이 틀린것 같은데...코드 좀 봐 주세요.
procedure TForm3.Add_OKClick(Sender: TObject);
var
newId, dm_title, dm_kw, lt_name : string;
begin
newId := Edit1.Text;
dm_title := Edit2.Text;
dm_kw := Edit3.Text;
lt_name := Form2.full_name;
if IDoc.Checked then
begin
showmessage('checked');
end
else
begin
Query1.SQL.Clear;
Query1.SQL.Add('insert into MainEDMS(nnode, title, writer, keyword');
Query1.SQL.Add('values('''+ newId +''','''+ dm_title +''','''+ lt_name +''','''+ dm_kw +''')');
Query1.ExecSQL;
end;
end;
MainEDMS 테이블에 필드가 nnode, title, writer, keyword 이거 말고 더 있습니다.
그런데 이 필드에만 데이타값이 들어 가면 되거든요.
전체 필드를 다 적어 주고, 값도 다 적어 주어야 하나요?
데이블 만들때, 전부 다 null 값을 디폴트로 정해 주었거든요.
그래서 Mysql 문에서 하나의 필드만 정해서 값을 넣었더니 값이 들어가는걸 봐서는
필드를 다 적어 주고, 값도 다 적어 주지 않아도 되는거 아니예요 ?
아래와 같이 했더니 입력이 되었습니다.
mysql> insert into MainEDMS (mody)
-> values('M');
Query OK, 1 row affected (0.01 sec)
아무리 봐도 문법이 틀린것 같습니다.
너무 급해서 그럽니다. 꼭 좀 도와 주십시요. -.-
우괄호가 하나 빠졌네요..