过程:
procedure runsql(sqlstr:string);
begin
msgbox(sqlstr,1);
data.ADOCom1.CommandText:=sqlstr;
try
data.ADOCom1.Execute;
except
on e:Exception do
msgbox('执行指令错误'+#13+'错误:'+e.Message,1);
end;
end;procedure log_write(str:string); //记录日志文件
begin
sqlstr:='Insert into log(id,rq,sj,yh,memo)values('''+''','''+formatdatetime('yyyy-mm-dd',date)+ ''','''+formatdatetime('hh:mm:ss',time)+''','''+user_name+''','''+str+''')';
end;
数据库表Log是一个很简单的表:
字段及类型如下:
字段名称 数据类型
id 自动编号
rq 文本
sj 文本
yh 文本
memo 文本错误提示是:INSERT INTO 语句的语法错误.
procedure runsql(sqlstr:string);
begin
msgbox(sqlstr,1);
data.ADOCom1.CommandText:=sqlstr;
try
data.ADOCom1.Execute;
except
on e:Exception do
msgbox('执行指令错误'+#13+'错误:'+e.Message,1);
end;
end;procedure log_write(str:string); //记录日志文件
begin
sqlstr:='Insert into log(id,rq,sj,yh,memo)values('''+''','''+formatdatetime('yyyy-mm-dd',date)+ ''','''+formatdatetime('hh:mm:ss',time)+''','''+user_name+''','''+str+''')';
end;
数据库表Log是一个很简单的表:
字段及类型如下:
字段名称 数据类型
id 自动编号
rq 文本
sj 文本
yh 文本
memo 文本错误提示是:INSERT INTO 语句的语法错误.
用如下方式试试
Insert into [log](id,rq,sj,yh,memo)values
Insert into log(id,rq,sj,yh,memo)values //里面的id应该去掉,也不要插入值
这样sqlstr:='Insert into log(rq,sj,yh,memo) values('+QuotedStr(formatdatetime('yyyy-mm-dd',date))+','+QuotedStr(formatdatetime('hh:mm:ss',time))+','+QuotedStr(user_name)+','+QuotedStr(str)+')';
数据库是ACCESS,请大家帮忙看看.
不知道memo是不是ACCESS中的保留关键字,所以之前的测试都是失败的,将memo这个字段
用其它单词替代就可以了!谢谢楼上朋友的帮忙.谢谢
我把SQL语句拷贝到,SQL 2000 里,发现,MEMO是关键字.经显眼的颜色表示,
才知道它是关键字的.
还有这句话其实没有什么错误,只不过你的表字段有问题,MEMO是关键字,
最好不要用做字段名,请更改这个字段名,如下:
sqlstr:= 'Insert into log(rq,sj,yh,me) values('
+quotedStr(formatdatetime('yyyy-mm-dd',date))+','
+quotedStr(formatdatetime('hh:mm:ss',time))+','
+quotedStr(user_name)+','+quotedStr(str)+')';