前台为delphi 后台数据库为vfp的两个表t_pb,myban(其中myban为在程序运行时建立的)要实现的功能是这样的:用sql语句先建立结构与t_pb一样的表myban, 把exel中的数据先导入myban中,再用myban的数据更新t_pb中的数据.odbc的驱动我选的是:microsoft visual foxpro driverdatabasetype 我选的是free table directory /////////////////////// sql语句我写入下 update t_pb set b01=myban.b01 from myban where ltrim(rtrim(t_pb.zgbh)) = ltrim(rtrim(mypan.zgbh))其中zgbh为两个表的关键字可是错误如下:Command contains unrecognized phrase/keyword我把sql语句改成update t_pb inner join myban on ltrim(rtrim(t_pb.zgbh)) = ltrim(rtrim(mypan.zgbh))set b01=myban.b01 错误跟上面一样。到底哪个地方错了,请高手们指条生路呀。再sql server 中轻而易举的事情在vfp中怎么比登天还难。vfp 真垃圾。
解决方案 »
- 招聘delphi人才
- 难题不难,兄弟们帮忙:):):):):):):):):):):):):):):) UP 有分
- 有关DBGrid的使用??下拉框实现DBLookupComboBox的效果?
- 多層系統中的數據保存問題
- sqlserver:客户端连接不上数据库
- 使用ALTER方法对数据库中的表的字段进行添加和修改操作,怎样定义BOOLEAN型字段?怎样修改某字段的是否可以为空属性(不是问“是否必填字
- 散分交朋友啦!!
- 100分:求Report Machine 完全版(不是免费版)!!!
- edit如何实现记忆功能?
- 标题栏上放控件(如:按钮)
- 请问哪位大侠能够提供类似foxmail的源代码,感激不尽!
- 有关数据库优化维护问题,大虾们给点意见
update t_pb set tp_pb.b01=myban.b01 where trim(t_pb.zgbh) = trim(mypan.zgbh)
delphi中没有ltrim()和rtrim(),只有trim(),update中好象也没有from
我的专家分还没多少呢
var
s:string;
beginaq1.close;
aq1.sq1.clear;
aq1.sql.add('select * from myban ');
aq1.open;aq1.first;
while not aq1.eof do
begin
s:=trim(aq1.fieldbyname('zgbh').Asstring);
aq2.close;
aq2.sq1.clear;
aq2.sq1.add(' select * from t_pb where zgbh=''+s+'''' ' );
aq2.open;if aq2.recordcount>0 then
begin
aq2.edit;
aq2.fieldbyname('b01').value:=trim(aq1.fieldbyname('b01').Asstring);
aq2.post;
end;aq1.next;end;end;vfp这样落后的东西居然公司里面还有这样的程序。郁闷。