| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2351 人关注过本帖
标题:TClientDataSet中commandtext的问题
只看楼主 加入收藏
zhongjinting
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-4-14
收藏
 问题点数:0 回复次数:11 
TClientDataSet中commandtext的问题
在应用TClientDataSet时,我想保存数据,代码如下:
with cdsSystem do
begin
CommandText:=CommandText+'insert into T_Customer('+
' CustomerID,Code,Name,'+
' PostalCode,CreateDate,AreaID)'+
' values(:p2,'+
' '''+fieldbyname('Code').asstring+''','+
' '''+fieldbyname('Name').asstring+''','+
' :p3,'+
' :p4,'+
' :p5);';
Params.ParamByName('p2').Value:=fieldbyname('CustomerID').asinteger;
Params.ParamByName('p3').Value:=fieldbyname('PostalCode').AsInteger
Params.ParamByName('p4').Value:=fieldbyname('CreateDate').asdatetime;
Params.ParamByName('p5').Value:=fieldbyname('AreaID').asinteger;
end;
现在我想不用参数赋值,直接把值放 到SQL语句的values()中,但引号的问题总困扰着我,对于字符类型
的值我懂了,但对于这些数值型和日期型应当怎么加引号才对呢
比如:
CommandText:=CommandText+'insert into T_Customer('+
' CustomerID,Code,Name,'+
' PostalCode,CreateDate,AreaID)'+
' values(fieldbyname('CustomerID').asinteger,'+
……
……
这里的fieldbyname('CustomerID').asinteger应该怎么使用引号才正确呢?
对于这些字段,我数据库里用的是NUMBER型和date型(oracle)
请问各位大侠,应该如何做呢?
谢谢~~~!~!~!~!~!

[此贴子已经被作者于2007-4-14 17:00:54编辑过]

搜索更多相关主题的帖子: commandtext 
2007-04-14 16:57
nongen
Rank: 5Rank: 5
来 自:网络
等 级:贵宾
威 望:17
帖 子:322
专家分:0
注 册:2006-11-25
收藏
得分:0 
数字日期:' '+date+' '
字符串:' '''+str+''' '

昨天不是我的,明天不是你的,今天却是我们的。
http://www.
2007-04-14 22:35
zhongjinting
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-4-14
收藏
得分:0 

似乎不行哦,我是这样做的:
' values('+
' '+fieldbyname('CustomerID').asinteger+','+ -------数字
' '''+fieldbyname('Code').asstring+''','+
' '''+fieldbyname('Name').asstring+''','+
' '''+fieldbyname('SimpliedName').asstring+''','
' '''+fieldbyname('Address').asstring+''','+
' '''+fieldbyname('Telephone').asstring+''','+
' '''+fieldbyname('Fax').asstring+''','+
' '+fieldbyname('CreateDate').asdatetime+','+ -------日期
……………………
……………………
编译时没通过,提示数值和字符、字符和日期不匹配。
请问应该如何改?
谢谢指教~!~!~!

[此贴子已经被作者于2007-4-15 19:07:03编辑过]

2007-04-14 23:35
zhongjinting
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-4-14
收藏
得分:0 
板主大哥,有空的时候帮忙解决下这个问题~!
谢谢~!
2007-04-15 20:45
nongen
Rank: 5Rank: 5
来 自:网络
等 级:贵宾
威 望:17
帖 子:322
专家分:0
注 册:2006-11-25
收藏
得分:0 
你看你的数据库字段类型

昨天不是我的,明天不是你的,今天却是我们的。
http://www.
2007-04-16 20:15
zhongjinting
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-4-14
收藏
得分:0 
在数据库里用的是NUMBER型和date型(oracle),那应当怎么连接起来呢?
日期:' '+date+' ',数字:' '+number+' '
这样连接不行吧,字符串和日期、数字无法连接啊,应该怎么连接呢,才能使得其为合法的SQL语句~!~!


2007-04-16 20:34
nongen
Rank: 5Rank: 5
来 自:网络
等 级:贵宾
威 望:17
帖 子:322
专家分:0
注 册:2006-11-25
收藏
得分:0 
oracle没用过。不过MSSQL中日期型其实就是浮点型

昨天不是我的,明天不是你的,今天却是我们的。
http://www.
2007-04-17 03:11
zhongjinting
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-4-14
收藏
得分:0 

对于我上面这个问题来说,应该与数据库无关吧,我只是想其成为合法的SQL语句,问题是应当怎么样加引号连接才是合法的,字符串和数字类型能否合并起来,有没有解决的办法?

2007-04-17 08:34
nongen
Rank: 5Rank: 5
来 自:网络
等 级:贵宾
威 望:17
帖 子:322
专家分:0
注 册:2006-11-25
收藏
得分:0 

datetime跟string同样处理。


昨天不是我的,明天不是你的,今天却是我们的。
http://www.
2007-04-17 12:42
zhongjinting
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-4-14
收藏
得分:0 

似乎不行哦,我试了下,还是提示不匹配,哎,看来只能用参数了 。
但是这里有个问题,我保存数据的时候,是多条SQL语句一起提交,比如说,我增加了三条记录,
那么就一次性提交三条SQL语句,如果用参数的话似乎很不方便。
我测试的时候发现,参数最后才把值赋给SQL语句的,也就是说,如果参数只写一次的话,最后三记录的参数都会用这些参数,这样会导致出现数据完整性的问题,“数值不唯一”,提交出错。
提交这些SQL语句的时候我是用循环的,将所有的SQL加在一起,然后一起提交。
请问这个问题怎么解决呢?

2007-04-17 15:20
快速回复:TClientDataSet中commandtext的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040760 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved