DBEdit简单问题。 (20分)

  • 主题发起人 主题发起人 paulchx
  • 开始时间 开始时间
P

paulchx

Unregistered / Unconfirmed
GUEST, unregistred user!
我用Foxpro数据库zx1,其中字段chang,kuan,xlcc为数值型,代码如下:with table1 do
query1.close;
Query1.SQL.clear;
if Dbedit10.Text<>' ' then
begin
Query1.SQL.Add('update zx1 set xlcc=chang*kuan*2/1000');
Query1.SQL.Add('where ddh=dbedit1.text');
Query1.Prepare;
Query1.Open;
Query1.ExecSql;
报错如下:Type mismatch in Expression.
但在Foxpro 下运行'update zx1 set xlcc=chang*kuan*2/1000 则可以。


谢谢各位提供帮助,但我将 Query1.SQL.Add('where ddh=dbedit1.text');

Query1.Open;这两句去掉后,编译时仍然报同样错误,到底什么原因呢?

 
Query1.SQL.Add('update zx1 set xlcc=chang*kuan*2/1000');
改为Query1.SQL.Add('update zx1 set xlcc=chang*kuan*2/1000 ');
试试
 
Query1.SQL.Add('where ddh=dbedit1.text');
改为试试
Query1.SQL.Add(formar('where ddh = %s ',[dbedit1.text]));
另请教
你 用Query 连接
forpro 用的什么好方法
liyunhong2002@yahoo.com.cn
 
Query1.SQL.Add('where ddh=dbedit1.text'); 有问题
ddh是数字的话: 'where ddh='+dbedit1.text
ddh是字符串的话: 'where ddh='+QuotedStr(dbedit1.text)
 
Pipi同志:程序报错是针对 Query1.SQL.Add('update zx1 set xlcc=chang*kuan*2/1000');这一行,
请问这一行有什么问题?
 
没有问题,只是针对Foxpro的驱动程序不支持这种表达式,你可以将这个语句换一个数据库
执行试试(比如Intrbase)应该没问题。
 
我觉得奇怪,你说
Query1.SQL.Add('update zx1 set xlcc=chang*kuan*2/1000');
这行报错。
如果说是编译时候报错,那么这行语句没问题
要是运行时报错,那么这句只是添加sql命令,还没开始执行,你添加什么命令他也不应该报错啊
要报错也是execsql的时候报错
另外,对了,只需要用 Query1.ExecSql ,用 Query1.Open 是错误的,他只能用于select命令
 
只需要用 Query1.ExecSql ,用 Query1.Open 是错误的,他只能用于select命令
居然没人发现你的open的问题:)
 
[:)] 我来晚了
我看见 Query1.Open;
Query1.ExecSql;
这两句了!

另外, Query1.SQL.Add('where ddh=dbedit1.text'); 这句我觉得有问题!
 
谢谢各位提供帮助,但我将 Query1.SQL.Add('where ddh=dbedit1.text');

Query1.Open;这两句去掉后,编译时仍然报同样错误,到底什么原因呢?
 
是编译还是运行报错?
编译错误的话,双击错误,会跳到出错的地方,跳在什么地方?
 
Pipi:报错:Application.Run;
Query1.ExecSQL;
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
792
import
I
I
回复
0
查看
2K
import
I
I
回复
0
查看
3K
import
I
后退
顶部