Delphi6下的数据库从paradox转换到SQL2000后出现的问题(50分)

  • 主题发起人 主题发起人 球迷
  • 开始时间 开始时间

球迷

Unregistered / Unconfirmed
GUEST, unregistred user!
本来用PARADOX数据库,后来转到SQL2000下,结果编译的时候没有问题,运行的时候出现如下错误信息。
Project case.exe raised exception class EDBEngineError with message 'Invalid field name'
[Microsoft][ODBC SQL Server Drivers][SQL Server]列名'个险'无效;
[Microsoft][ODBC SQL Server Drivers][SQL Server]列名'0701'无效;
[Microsoft][ODBC SQL Server Drivers][SQL Server]列名'date'无效;
......
出错的那段程序如下,请高手指点:
procedure Tcase_Input.comb_casetypeChange(Sender:TObject);
var rep_no:string;
begin
case comb_casetype.ItemIndex of
0: begin
query1.SQL.Clear;
query1.SQL.Add('select count(*)+1 from case_rep');
query1.SQL.Add('where case_type="个险"');
query1.SQL.Add('and operator_date=date');
query1.SQL.Add('and agent_no="0701"');
query1.Open;
rep_no:=query1.Fields[0].AsString;
while length(rep_no)<3 do rep_no:='0'+rep_no;
rep_no:='GB0701'+datetostr(date)+rep_no ;
edit_repno.Text:=rep_no;
end;
1: begin
......
end;
end; //end of case
end; //end of procedure

另:我在把数据库从PARADOX转到SQL SERVER2000 上之后程序上应该注意修改哪些方面的东东?怎么修改最省事?是不是应该注意数据类型的匹配?
还有在SQL SERVER2000中保存不限长的多段文本最好用什么类型?用什么语句或控件读最好?
 
单引号,不是双引号的.
你的date是什么意思.
 
我用单引号编译通不过,说是非法字符(是不是delphi6中使用SQL查询时用中文必须要有什么设置?)
date本来是我用来取当前日期的,是不是应该用PARAMBYNAME?
字段是DATETIME型的,判断相等的话应该怎么写?
 
哪位大虾伸一下援手救急啊
 
上面的问题解决了,我全部用参数传递就OK了,不过现在又有新的问题,
请问各位大虾DELPHI6中的UPDATESQL控件怎么用?好象不能进行参数传递啊,哪里有有关这个的详细用法的参考书籍?
还有我用以下代码更新SQLSERVER2000中的一个表,但程序报告表未处于编辑或修改状态,是何原因?
table3.Open;
table3.FieldByName('report_no').AsString:=Edit1.Text;
table3.Edit;
table3.FieldByName('accept_no').AsString:=edit2.text;
table3.FieldByName('case_status').AsString:='立案';
table3.Post;
table3.Close;
请各位救急啊
 
怎么没人跟帖啊?
这么多的高手呢?
 
真是%$^$^*(&amp;(
边度有人用中文做字段名嫁?
应该在输出时才改成中文吧
 
我不是用中文做字段名,这个我知道
 
肯定有错了!!!!!11
table3.Open;
table3.edit;///加在这里啊!
table3.FieldByName('report_no').AsString:=Edit1.Text;
table3.Edit;//去掉!
table3.FieldByName('accept_no').AsString:=edit2.text;
table3.FieldByName('case_status').AsString:='立案';
table3.Post;
table3.Close;
 
接受答案了.
 
后退
顶部