问一个比较幼稚的问题:表名是变量,怎么SELECT?
我幼稚地在PB里写了如下脚本:
SELECT hh
INTO :hh
FROM “ls_table”(ls_table是String型变量,hh是其中的字段);
PB当然不买我账,无情地提示我出错!希望大家能告诉我要用到什么知识并且说详细点,我这个人理解能力不好,呵呵!谢了!
注:我的ls_table不管怎么变,始终都包含有hh字段的.
问题点数:21、回复次数:9Top
1 楼sbks(hwnd,&rect)回复于 2001-11-12 22:00:58 得分 0
动态SQL
Top
2 楼wanghai(汪海)回复于 2001-11-12 22:01:39 得分 0
不懂,为什么要把表名变成STRINGTop
3 楼jshyjyw(狐说九道)回复于 2001-11-12 22:04:25 得分 0
PowerBuilder我不懂,但我
在vb中我这样写:
Adodc1.RecordSource = "select mc from " & SNtable & " group by mc "
Adodc1.Refresh
Top
4 楼liu_cheng_gang(lcg)回复于 2001-11-12 22:19:58 得分 10
自己拼SQL语法,设置为STRING
如:
STIRNG LSSELECT,LSTABLENAME
LSTABLENAME = ‘TABLE1’
LS = ‘SELECT COLUMN1 ,COLUMN2 FROM ’+ :LSTABLENAME + ‘WHERE’
EXECUTE :LS USING SQLCA;
Top
5 楼946(情系会计)回复于 2001-11-13 08:01:15 得分 0
楼上说得不错Top
6 楼rightyeah(众妙之门)回复于 2001-11-13 08:32:41 得分 0
续liu_cheng_gang(lcg):
如果还想取得字段的值(在pbscript中使用),就必须做cursor
参见pb help ,dynamic sql 1--4Top
7 楼yandong_mars(信)回复于 2001-11-13 09:15:32 得分 0
同意回复人: rightyeah(众妙之门) Top
8 楼zzzsssccc(今天正为明天后悔)回复于 2001-11-13 10:32:08 得分 11
to lcg:
开玩笑!看好了是select hh into :hh from ‘tablename‘;
是需要返回值的。
declare my_cursor dynamic cursor for sqlca;
int a
string b
string c
c='select hh from '+'tablename'+' where ....'
prepare sqlca from :c;
open dynamic my_cursor;
fetch my_cursor into b;
close my_cursor;Top
9 楼diandianqiuqiu(IT民工)回复于 2001-11-13 17:21:44 得分 0
多谢大家的回答,用zzzsssccc(天空)的方法,运行,通过,成功... 兴奋!Top




