我用的access数据库文件名是users.mdb下面有个表为users,有两列usersname和password,全为文本。我用的adoconnection2连接的数据库,用adoquery2进行操作,我现在要对数据库数据进行添加,语句如下procedure Tzc.Button1Click(Sender: TObject);
begin
if (trim(edit1.Text)<>'') and (trim(edit2.Text)<>'') then
begin
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('select * from student where 学号=:xm and 姓名=:xszh');
parameters.parambyname('xm').value:=edit1.Text;
parameters.parambyname('xszh').value:=edit2.Text;
open;
if recordcount < 1 then
begin
close;
sql.Clear;
sql.Add('insert into student (学号,姓名,性别,不良记录) ');
sql.Add('Values (:xm,:nl,:bj,:xb)');
parameters.ParamByName('xm').Value :=edit1.Text;
parameters.parambyname('nl').value:=edit2.Text;
parameters.parambyname('bj').value:=combobox1.Text;
parameters.parambyname('xb').value:=0; execsql;
end
else showmessage('此学生已经存在!');
end;
end
else
showmessage('录入信息不全!');
if (trim(edit1.Text)<>'') and (trim(edit2.Text)<>'') then
with adoquery2 do
begin
close;
sql.Clear;
sql.Add('select * from users where username=:xm');
parameters.parambyname('xm').value:=edit1.Text;
open;
if recordcount < 1 then
begin
close;
sql.Clear;
sql.Add('select * from users');
open ;
sql.Add('insert into users (username,password) ');
sql.Add('Values (:xm,:nl)');
parameters.ParamByName('xm').Value :=edit1.Text;
parameters.ParamByName('nl').Value :=edit1.Text;
execsql;
end;
end;
showmessage('新读者注册完成,用户名和默认密码皆为学号!');
data.ADOConnection1.Close;
data.ADOConnection1.Open();
stum.ADOTable1.Active :=true;
self.Close;
end;前一部分是对另一个表的添加,后面才是对users的添加操作。我运行的结果是如果edit1输入数字出现错误“FROM 子句语法错误”,如果输入英文字母不报错,这是怎么回事啊?help me!
begin
if (trim(edit1.Text)<>'') and (trim(edit2.Text)<>'') then
begin
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('select * from student where 学号=:xm and 姓名=:xszh');
parameters.parambyname('xm').value:=edit1.Text;
parameters.parambyname('xszh').value:=edit2.Text;
open;
if recordcount < 1 then
begin
close;
sql.Clear;
sql.Add('insert into student (学号,姓名,性别,不良记录) ');
sql.Add('Values (:xm,:nl,:bj,:xb)');
parameters.ParamByName('xm').Value :=edit1.Text;
parameters.parambyname('nl').value:=edit2.Text;
parameters.parambyname('bj').value:=combobox1.Text;
parameters.parambyname('xb').value:=0; execsql;
end
else showmessage('此学生已经存在!');
end;
end
else
showmessage('录入信息不全!');
if (trim(edit1.Text)<>'') and (trim(edit2.Text)<>'') then
with adoquery2 do
begin
close;
sql.Clear;
sql.Add('select * from users where username=:xm');
parameters.parambyname('xm').value:=edit1.Text;
open;
if recordcount < 1 then
begin
close;
sql.Clear;
sql.Add('select * from users');
open ;
sql.Add('insert into users (username,password) ');
sql.Add('Values (:xm,:nl)');
parameters.ParamByName('xm').Value :=edit1.Text;
parameters.ParamByName('nl').Value :=edit1.Text;
execsql;
end;
end;
showmessage('新读者注册完成,用户名和默认密码皆为学号!');
data.ADOConnection1.Close;
data.ADOConnection1.Open();
stum.ADOTable1.Active :=true;
self.Close;
end;前一部分是对另一个表的添加,后面才是对users的添加操作。我运行的结果是如果edit1输入数字出现错误“FROM 子句语法错误”,如果输入英文字母不报错,这是怎么回事啊?help me!
解决方案 »
- dbgrid那个方法可以使记录移到最后的记录?
- 关系密切的非技术问题!
- !!!!!!!!!!!!!!木马的来源是ADSL,线路问题或者帐号问题?有可能吗????!!进来看!!
- 请问各位怎样在dbgrid中的某个字段(类型为实型)的数值格式化成0.00形式,用displayformat怎么写?
- 急!在XP下编写的程序在98下显示不正常,字体大了好多,是什么问题?
- 今天结婚,散分
- 大家探讨一下吧,把所有的源程式都收集起来,大家互相学习!!
- 在使用adoquery控件时,总提示出错???
- DELPHI数据库打包问题
- 关于ADOQuery的小问题。
- [高手进]程序编译时能否自动执行某段代码而运行时不执行?
- DELPHI窗口最小化和还原事件捕获
parameters.parambyname('xm').value:=edit1.Text;
parameters.parambyname('xszh').value:=edit2.Text;
showmessage(sql);
设置断点。open;
估计是提交的语句不合法。修改加引号。
procedure Tzc.Button1Click(Sender: TObject);
begin
if (trim(edit1.Text) <> '') and (trim(edit2.Text) <> '') then
begin
with adoquery1 do
begin
sql.text := 'select * from student where 学号=' + trim(edit1.Text) + ' and 姓名=' + trim(edit2.Text);
open;
if recordcount < 1 then
begin
sql.text := 'insert into student (学号,姓名,性别,不良记录) Values ('
+ Trim(edit1.Text) + ','
+ Trim(edit2.Text) + ','
+ Trim(combobox1.Text) + ','
+ 0;
execsql;
end
else showmessage('此学生已经存在!');
end;
end
else
showmessage('录入信息不全!'); if (trim(edit1.Text) <> '') and (trim(edit2.Text) <> '') then
with adoquery2 do
begin
sql.text := 'select * from users where username=' + edit1.Text;
open;
if recordcount < 1 then
begin
sql.text := 'insert into users (username,password) Values (' + trim(edit1.Text) + ',' + trim(edit1.Text) + ')';
execsql;
end;
end;
showmessage('新读者注册完成,用户名和默认密码皆为学号!');
data.ADOConnection1.Close;
data.ADOConnection1.Open();
stum.ADOTable1.Active := true;
self.Close;
end;