| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1141 人关注过本帖
标题:关于_sceen.sqlstring=="SELECT tblFix.*,"+" ORDER BY"的 ...
只看楼主 加入收藏
wsjzabc
Rank: 1
等 级:新手上路
帖 子:151
专家分:0
注 册:2005-8-6
收藏
 问题点数:0 回复次数:2 
关于_sceen.sqlstring=="SELECT tblFix.*,"+" ORDER BY"的小问题?

大家之不知道下面这个语句大概是个什么意思啊?语句如下:
_sceen.sqlstring=="SELECT tblFix.*,"+" ORDER BY"

全部的语句如下:


IF Thisform.opgFind.Value=1 &&查找全部记录
cWhere=" "
ELSE &&按指定条件查找
*!* 生成SELECT查询表达式
SELECT curFixStruct   ------------第1个
DO CASE
CASE curFixStruct.FieldType="C" &&查找字符型数据
DO CASE
CASE Thisform.cboCondition.DisplayValue="等于"
cWhere="WHERE "+Thisform.cboField.DisplayValue+;
"='"+ALLTRIM(Thisform.txtContent.Value)+"'"
CASE Thisform.cboCondition.DisplayValue="不等于"
cWhere="WHERE "+Thisform.cboField.DisplayValue+;
"<>'"+ALLTRIM(Thisform.txtContent.Value)+"'"
CASE Thisform.cboCondition.DisplayValue="包含"
cWhere="WHERE "+Thisform.cboField.DisplayValue+;
"LIKE '%"+ALLTRIM(Thisform.txtContent.Value)+"%'"
ENDCASE
CASE curFixStruct.FieldType="M" &&查找备注型数据
cWhere="WHERE "+Thisform.cboField.DisplayValue+;
"LIKE '%"+ALLTRIM(Thisform.txtContent.Value)+"%'"
CASE curFixStruct.FieldType="N" &&查找数值型数据
cOperator=GetOperator(Thisform.cboCondition.DisplayValue)
cWhere="WHERE "+Thisform.cboField.DisplayValue+;
cOperator+ALLTRIM(STR(Thisform.txtContent.Value,19,2))
CASE curFixStruct.FieldType="D" &&查找日期型数据
cOperator=GetOperator(Thisform.cboCondition.DisplayValue)
cWhere="WHERE "+ALLTRIM(Thisform.cboField.DisplayValue)+;
cOperator+"CONVERT(DATETIME,'"+DTOC(Thisform.txtContent.Value)+"',101)"
ENDCASE
ENDIF

nHandle=GetConnHandle() &&获得连接句柄
IF nHandle>0
IF SQLGETPROP(nHandle,"ConnectBusy") &&检测连接是否忙碌,得到连接属性
=MESSAGEBOX("连接忙碌,请稍候再试!",0+48,"提示")
RETURN
ELSE
*!* 取得要执行的查询可以返回的记录总数
nRecordNumber=0
cSQLString='EXECUTE p_GetQueryRecordNumber "tblFix",'+'"tblAsset",'+;
'"tblFix.AssetNumber=tblAsset.AssetNumber","'+cWhere+'",?@nRecordNumber'
*WAIT WINDOW cSQLString
=SQLSETPROP(nHandle,"Asynchronous",.F.) &&设置为同步连接
IF SQLEXEC(_SCREEN.ConnectHandle,cSQLString)<=0 &&执行失败
=MESSAGEBOX("获取记录数目失败!",0+48,"提示")
RETURN
ENDIF

=ShowProgress(nRecordNumber) &&显示工具栏中的进度条
=SQLSETPROP(nHandle,"Asynchronous",.T.) &&设置为异步连接
_SCREEN.SQLString="SELECT tblFix.*,"+;
"tblAsset.AssetName,"+;
"tblAsset.AssetType,"+;
"tblAsset.AssetSet,"+;
"tblAsset.AssetGroup,"+;
"tblAsset.MadeComp,"+;
"tblAsset.MadeDate,"+;
"tblAsset.InDate,"+;
"tblAsset.Price,"+;
"tblAsset.Depart "+;
"FROM tblFix "+;
"INNER JOIN tblAsset "+;
"ON tblFix.AssetNumber=tblAsset.AssetNumber "+cWhere+;
" ORDER BY tblFix.AssetNumber,tblFix.FixDate"
_SCREEN.ExecMethodAfterSQL="frmQueryFix.SetGrid()"+CHR(13)+;
"frmQueryFix.cmdStop.Enabled=.F."+CHR(13)+;
"frmQueryFix.cmdStart.Enabled=.T."+CHR(13)+;
"frmQueryFix.grdFind.Setfocus" &&设置在读取数据完成后要执行的程序语句---=-第2个
_SCREEN.CursorName="curFix"
_SCREEN.TotleFetchRec=0 &&清空总记录数

=CURSORSETPROP("FetchAsNeeded",.T.,0) &&设置根据需要下载记录
*!* 下面的语句指定每次读取100条记录,如果希望进度条显示的更准确可以设置每次读取1条,
*!* 但是读取速度会明显下降
=CURSORSETPROP("FetchSize",100,0)

IF USED("curFix") &&关闭表,重新读取
USE IN curFix
Thisform.SetGrid()
ENDIF

=SQLEXEC(nHandle,_SCREEN.SQLString,"curFix")
oProgressBar.cntProg.tmrRefreshProg.Enabled=.T.
ENDIF
ENDIF

其中第1个中选择的数据表,其实在书中的编程中并没有啊?不知道他是怎么调用的?请高手指教阿!谢谢呵!


不知道大家有没有vfp+sql编程c/s版本(spt技术)的基本编程知识阿?好像其中用到的sql程序比较多 吧?

搜索更多相关主题的帖子: SELECT ORDER tblFix sqlstring sceen 
2006-06-27 22:55
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
调用执行的命令是
=SQLEXEC(nHandle,_SCREEN.SQLString,"curFix")

第1个选择的表一定在什么地方被打开过

至于_SCREEN.SQLString中的SQLString是添加给_SCREEN的一个属性

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-06-28 00:30
wsjzabc
Rank: 1
等 级:新手上路
帖 子:151
专家分:0
注 册:2005-8-6
收藏
得分:0 
“第1个选择的表一定在什么地方被打开过”,但是服务商提供的源程序中的数据库.dbc中并没有数据表,只有一个curuser.dbf表,其它的都没有 ?

_sceen.sqlstring=="SELECT tblFix.*,"+" ORDER BY"是动态生成select语句/

2006-06-28 08:29
快速回复:关于_sceen.sqlstring=="SELECT tblFix.*,"+" ORDER BY"的 ...
数据加载中...
 
   



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

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