一个非常难的sql语句,新手勿入(做出来了再加分)
发布网友
发布时间:2022-04-08 00:32
我来回答
共4个回答
热心网友
时间:2022-04-08 02:02
s="" - 要形成的字段串
f=.T. - 这个逻辑值用处是找第一个被选择的字段名
*** FOUND ***
FOR i=1 TO thisform.List1.ColumnCount 从这个list的第一项一直到最后循环
IF thisform.List1.Selected(i) 如果这行状态是被选择的
IF f 如果是第一个
*** FOUND ***
s=thisform.List1.value 就赋值给s
f=.F. 第一个做完了。
ELSE 不是第一个
*** FOUND ***
s=s+thisform.List1.value 把字段名放在串后面 ,得加逗号先。
ENDIF
ENDIF
ENDFOR
-- 循环完毕 s形成一个大概是:字段1,字段3,字段4 这样的串
st="select &s from orders into cursor tmp" 把s放入st sql串中。
thisform.Grid1.RecordSource=st 表格1的数据源设为st
-------
结果就是grid1把这个表中,你在list1中复选的字段数据都裂了出来。
错误一般都是方法属性调用错误。最后一个错误还有没加逗号的错误。
-------
加逗号的原因是要生成一个类似 字段1,字段3,字段4 串.
因为sql select语句要求字段列表写成这样的.
热心网友
时间:2022-04-08 03:20
先确认一个问题,Content表的数据是否可以修改?
我实现了一个存储过程,可以给这些关键字加上括号,但会修改content表的数据。
如果不想修改content表的数据,可能要把update语句改一下,比如,放到另外一张表里,只放有效的数据。
请移步到我的blog里看吧,如果不行请直接回复。
http://hi.baidu.com/rebooo/blog/item/1b69dd3fab712cff54e7239f.html
热心网友
时间:2022-04-08 04:54
这不是普通存储过程能解决的,考虑扩展存储过程吧。
而且没有办法确定哪两个字放一起可以组成一个词
热心网友
时间:2022-04-08 06:46
比较麻烦,应该不是很难
做个记号,有时间再来