- SQL code
SELECT F_ZSL INTO :VDTMP FROM vsTmpTbl WHERE XSTD_TDLS=:psTdls ;
FROM后面的"vsTmpTbl "是个string型的变量 存储着传进来的表名
可是按照上面的写法貌似PB不让保存
求帮助
------解决方案--------------------
只能用游标或数据存储
- C/C++ code
string ls_sql,VDTMP,psTdls,vsTmpTblvsTmpTbl = "你的表名"ls_sql = "SELECT F_ZSL FROM " + vsTmpTbl + "WHERE XSTD_TDLS='" + psTdls +"' "declare my_cursor dynamic cursor for SQLSA;prepare SQLSA from :ls_sql ;open dynamic my_cursor ;fetch my_cursor into :VDTMP;do while SQLcA.sqlcode=0 messagebox("", VDTMP) fetch my_cursor into :VDTMP;loopclose my_cursor;
------解决方案--------------------
数据存储
- C/C++ code
datastore ldslds = create datastorestring ls_syntax,error_syntaxfromSQL,error_createstring ls_sql,VDTMP,psTdls,vsTmpTbllong ivsTmpTbl = "你的表名"ls_sql = "SELECT F_ZSL FROM " + vsTmpTbl + "WHERE XSTD_TDLS='" + psTdls +"' "ls_syntax = sqlca.Syntaxfromsql( ls_sql, 'Style(Type=Grid)', error_syntaxfromSQL)IF len(error_syntaxfromSQL) > 0 then messagebox("提示","SQL语法错误!") returnelse lds.create(ls_syntax, error_create) IF len(error_create) > 0 then messagebox("提示","建立数据存储错误!") return end ifend iflds.settransobject(sqlca)lds.retrieve()for i = 1 to lds.rowcount() VDTMP = lds.getitemstring(i, "F_ZSL") messagebox("", VDTMP)end ifdestroy lds
------解决方案--------------------
把这部分代码封装为函数,方便重用
- C/C++ code
ls_syntax = sqlca.Syntaxfromsql( ls_sql, 'Style(Type=Grid)', error_syntaxfromSQL)IF len(error_syntaxfromSQL) > 0 then messagebox("提示","SQL语法错误!") returnelse lds.create(ls_syntax, error_create) IF len(error_create) > 0 then messagebox("提示","建立数据存储错误!") return end ifend if