我做了一个简单的学生宿舍管理系统,用delphi自带的database desktop设计了一个paradox表
表的各个域的type都是Alpha。查询表的时候,当查询的域的值为汉字的时候,就出错,而数字却可以运行。错误提示为:project1.exe raised exception class EDatabaseError with message'table1:field'张三'not found'.
下面是查询过程的代码?:
procedure TForm3.Button1Click(Sender: TObject);
begin
table1.Refresh;
with table1 do
try
disablecontrols;
filtered:=false;
memo1.Text:=memo1.Text+edit1.Text;
filter:=memo1.Text;
filtered:=true;
finally
enablecontrols;
if table1.RecordCount=0 then
begin
messagebeep(1);
showmessage('ûÓзûºÏÌõ¼þµÄ¼Ç¼£¬ÇëÈ·ÈÏÌõ¼þ»ò·ÅÆú²éѯ!') ;
if messagedlg('ÊÇ·ñ¼ÌÐø²éѯ£¿½áÊø²éѯ²ÅÄܽøÐÐÆäËû²Ù×÷!',mtinformation,[mbyes,mbno],0)=mrno then
begin
filtered:=false;
table1.Close;
table1.Open;
end;
end
else
begin
if messagedlg('ÊÇ·ñ¼ÌÐø²éѯ£¿½áÊø²éѯ²ÅÄܽøÐÐÆäËû²Ù×÷!',mtinformation,[mbyes,mbno],0)=mrno then
begin
filtered:=false;
table1.Close;
table1.Open;
end;
end;
end;end;
还有一个问题:就是我做了个登陆界面,在Timage对象上放了一个Tlable对象和三个Tbutton对象,怎么样才能让Tlable和Tbutton对象的位置随着主窗口的缩放自动移动,保持和各个边界的比例不变?
很菜的问题:)
表的各个域的type都是Alpha。查询表的时候,当查询的域的值为汉字的时候,就出错,而数字却可以运行。错误提示为:project1.exe raised exception class EDatabaseError with message'table1:field'张三'not found'.
下面是查询过程的代码?:
procedure TForm3.Button1Click(Sender: TObject);
begin
table1.Refresh;
with table1 do
try
disablecontrols;
filtered:=false;
memo1.Text:=memo1.Text+edit1.Text;
filter:=memo1.Text;
filtered:=true;
finally
enablecontrols;
if table1.RecordCount=0 then
begin
messagebeep(1);
showmessage('ûÓзûºÏÌõ¼þµÄ¼Ç¼£¬ÇëÈ·ÈÏÌõ¼þ»ò·ÅÆú²éѯ!') ;
if messagedlg('ÊÇ·ñ¼ÌÐø²éѯ£¿½áÊø²éѯ²ÅÄܽøÐÐÆäËû²Ù×÷!',mtinformation,[mbyes,mbno],0)=mrno then
begin
filtered:=false;
table1.Close;
table1.Open;
end;
end
else
begin
if messagedlg('ÊÇ·ñ¼ÌÐø²éѯ£¿½áÊø²éѯ²ÅÄܽøÐÐÆäËû²Ù×÷!',mtinformation,[mbyes,mbno],0)=mrno then
begin
filtered:=false;
table1.Close;
table1.Open;
end;
end;
end;end;
还有一个问题:就是我做了个登陆界面,在Timage对象上放了一个Tlable对象和三个Tbutton对象,怎么样才能让Tlable和Tbutton对象的位置随着主窗口的缩放自动移动,保持和各个边界的比例不变?
很菜的问题:)
procedure TForm3.Button1Click(Sender: TObject);
begin
table1.Refresh;
with table1 do
try
disablecontrols;
filtered:=false;
memo1.Text:=memo1.Text+edit1.Text;
filter:=memo1.Text;
filtered:=true;
finally
enablecontrols;
if table1.RecordCount=0 then
begin
messagebeep(1);
showmessage('没有符合条件的记录,请确认条件或放弃查询!') ;
if messagedlg('是否结束查询?结束查询才能进行其他操作!',mtinformation,[mbyes,mbno],0)=mrno then
begin
filtered:=false;
table1.Close;
table1.Open;
end;
end
else
begin
if messagedlg('是否结束查询?结束查询才能进行其他操作!',mtinformation,[mbyes,mbno],0)=mrno then
begin
filtered:=false;
table1.Close;
table1.Open;
end;
end;
end;end;
应该是你的memo1.Text内容不对
我单步调试的时候,watch memo1.Text的值,在执行完memo1.Text:=memo1.Text+edit1.Text;时,它的内容是对的,但下一步filter:=memo1.Text;执行的时候,就报错。
是帖出你的firlter的内容。
感觉就是你的filter内容写错了。
那为什么我运行时,查询的字段的值为汉字时,就报错呢?
谢谢
把Memo.text的格式转化?怎么转化呢,还请指点啊,我是新手,不太懂啊。
filter属性的格式可能出错