关于 query+updatesql的一个怪问题?(100分)

  • 主题发起人 主题发起人 ylbee
  • 开始时间 开始时间
Y

ylbee

Unregistered / Unconfirmed
GUEST, unregistred user!
我的query1(cacheupdate=true,requestlive=true;)的sql是这样写的:
SELECT Course.ST_DATE as"开始时间", Course.TEACHER as "老师",
Course.TEST_TYPE as "类型", Course.ORG_NO as "系",
Course.TERM as "学期", Course.GRADE aS "年级",
Course.CLASS_NO as "班级", Course.COURSE_NO as "课程号",
Course.COU_SPEC as"专业" , Course.COU_CRE as "学分", Course.COU_PERIOD as "学时",
Course.COU_EXAMINE as "考试",
Course.COU_MEMO as "备注", Cou_list.COU_NAME as "课程名称",
Cou_list.BOOK_NAME AS "署名"
FROM COURSE Course, COU_LIST Cou_list
WHERE Course.COURSE_NO=Cou_list.COURSE_NO

这时与query1连接的updatesql,不管怎样写都出错,程序运行时提示:无法更新数据,
原因是字段类型未知或找不到该字段 (我只要更改course的数据)。
如果把query1中的sql语句中 as和"汉字信息" 都去掉,重新生成updatesql的更新语句就
没有问题,程序运行正常。

高手,在保留 as和汉字信息 的情况下,如何写updatesql的语句才对?
数据库oracle 9+delphi6
 
我试了wwQuery rxQuery
都一样
在执行applyupdate后出错
 
没有人碰到这个问题?
 
我在updatesql里面写的modify sql字句如下:

update COURSE
set
ST_DATE = :ST_DATE,
TEACHER = :TEACHER,
TEST_TYPE = :TEST_TYPE,
ORG_NO = :ORG_NO,
TERM = :TERM,
GRADE = :GRADE,
CLASS_NO = :CLASS_NO,
COURSE_NO = :COURSE_NO,
COU_SPEC = :COU_SPEC,
COU_CRE = :COU_CRE,
COU_PERIOD = :COU_PERIOD,
COU_EXAMINE = :COU_EXAMINE,
COU_MEMO = :COU_MEMO
where
TERM = :OLD_TERM and
GRADE = :OLD_GRADE and
CLASS_NO = :OLD_CLASS_NO


这是我在运行时使用sqlmonitor 跟踪的结果:
SQL Prepare: ORACLE - update COURSE
set
ST_DATE = :1,
TEACHER = :2,
TEST_TYPE = :3,
ORG_NO = :4,
TERM = :5,
GRADE = :6,
CLASS_NO = :7,
COURSE_NO = :8,
COU_SPEC = :9,
COU_CRE = :10,
COU_PERIOD = :11,
COU_EXAMINE = :12,
COU_MEMO = :13
where
TERM = :14 and
GRADE = :15 and
CLASS_NO = :16

程序执行过程中,所有的数据都错了,好像传递的是 一个数列。接着程序报错:st_date的数据类型
不能确定。
高人指教,这问题太奇怪了!!!!
updatesql里面的语句到底该如何写????
 
加括号,在UPDATESQL中有
 
你的QUERY是连接查询,最好不要在感知控件里直接更新,对多表更新时会出错
 
updatesql不支持汉字字段名。
 
to yym
括号加哪里?
首先问大家:
我这样的sql能用updatesql更新数据吗?
如果不行,有别的解决方案吗?
 
因为你Query1打开后生成的临时字段的名称已不是以前的名称了,
而UpdateSQL中参数还有以前“:字段”,这样肯定就不可以了,
修改方法,UpdateSQL中的参数修改成现在的“:字段”,
当然字段不能是汉字,这个是Delphi中变量的标准,没办法
 
我现在就是不想修改query里面的sql语句(修改后相关的工作太大),
请问有办法(包括加一些事件)使updatesql工作正常吗?
 
除非updatesql执行前,对它的参数进行赋值
 
详细怎么做?
望各路高人指教!!
 
问题解决了
要写成:
:"开课时间"
Thanks
 
你这样修改的量同样很大
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
890
SUNSTONE的Delphi笔记
S
后退
顶部