delphi+sql server 2000
sql server里有张cbry的表,想修改其中2个字段的信息,出现头疼的错误,代码如下:procedure TForm1.Button1Click(Sender: TObject);
var str,str1:string;
begin
str1:='UPDATE CBRY SET yb_ft_bak=正常';
str:=str1+'where dw_bh='+edit1.text;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(str1);
adoquery1.ExecSQL;
end;返回错误:---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EOleException with message '列名 '正常' 无效。'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------在sql server下执行UPDATE CBRY
SET yb_ft_bak =正常
WHERE (DW_BH = '10001')返回同样的错误,改成:UPDATE CBRY
SET yb_ft_bak ='正常'
WHERE (DW_BH = '10001')执行成功!但到delphi里执行,不行:返回错误。[Error] Unit1.pas(39): Illegal character in input file: '正' ($D5FD)
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'把“正”字去掉,轮到“常”字也出现这个情况。被这两个搞死了,好象被踢皮球样的,delphi和sql server都摆脸。
我以前编写过这个功能,不知道代码被我丢到哪里去了。汗死了,有人帮我吗?=====================================
最后,请问各位大哥,delphi修改数据的例子能不能给我几个?
sql server里有张cbry的表,想修改其中2个字段的信息,出现头疼的错误,代码如下:procedure TForm1.Button1Click(Sender: TObject);
var str,str1:string;
begin
str1:='UPDATE CBRY SET yb_ft_bak=正常';
str:=str1+'where dw_bh='+edit1.text;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(str1);
adoquery1.ExecSQL;
end;返回错误:---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EOleException with message '列名 '正常' 无效。'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------在sql server下执行UPDATE CBRY
SET yb_ft_bak =正常
WHERE (DW_BH = '10001')返回同样的错误,改成:UPDATE CBRY
SET yb_ft_bak ='正常'
WHERE (DW_BH = '10001')执行成功!但到delphi里执行,不行:返回错误。[Error] Unit1.pas(39): Illegal character in input file: '正' ($D5FD)
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'把“正”字去掉,轮到“常”字也出现这个情况。被这两个搞死了,好象被踢皮球样的,delphi和sql server都摆脸。
我以前编写过这个功能,不知道代码被我丢到哪里去了。汗死了,有人帮我吗?=====================================
最后,请问各位大哥,delphi修改数据的例子能不能给我几个?
解决方案 »
- 一个求1到1000数的阶乘和数 pascal!
- 刚看到有人说正则的什么问题,这里我也把我的问题问问
- 急,使用spcomm,前端有13数据时,spcomm无法接收数据!
- 问一个很简单的ado显示access数据库的内容的问题
- 关于透明窗体的问题
- 数学问题,求一个点与坐标系源点的角度,在线等
- 动态创建QRDBText怎么不行?
- ■■■如何对大型的文本文件进行加密?要快速的算法。■■■
- StrFmt and StrLFmt
- 请教关于Tcomboobox的问题
- 如何用数字键盘的回车键模拟TAB键?
- 请问如何获取WebBrowser控件中页面里的所有元素的名称,不是基于表单的元素,是所有元素,有些页面没有表单,导致我无法获取~
存储过程就是一个
proc
#####(过程名)
@sss(参数)
as
declare @ssd(变量)
set @ssd=@sss
exec(@ssd)
在更新的时候
id是主键,我定义为INT,要是字符类型的和前边编辑框一样五'
S:='update xxx set xx='''''+edit1.text+''''where id='+main.fieldbyname('id').asstring;
调用的时候
sql.add('exec #####'''+s+'''');
str1:='UPDATE CBRY SET yb_ft_bak='+#39+'正常'+#39;
str:=str1+'where dw_bh='+#39+edit1.text+#39;
试试!
str:=str1+' where dw_bh='+QuotedStr(edit1.text);
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(str1);
adoquery1.ExecSQL;
str:=str1+'where dw_bh='+edit1.text;
delphi会把"''"解释成一个"'"
str:=str1+'where dw_bh='+#39+edit1.text+#39;(dabo1977() ()
这答案的正确的,你之所以会出现那个错误是因为你让SQL SERVER不知道你用的'正常'是什么字段类型。如果强行加上引号就OK了。