我写了一个查询表字段的动态查询语句。可是不能得到我想要的结果。
请各位大侠赐教。
代码如下:
string Rowname // 列名
long RowNo //
string SqlCur
SqlCur = "SELECT sysobjects.id FROM sysobjects WHERE name = userinfo"
DECLARE curNo CURSOR FOR SELECT sysobjects.id FROM sysobjects WHERE name = "userinfo" ;
//PREPARE SQLSA FROM :SqlCur ;
OPEN curNo ;
FETCH curNo INTO :RowNo ;
CLOSE curNo ;
MessageBox('RowName' ,"=" + string(RowNo))
close (w_main)
在数据库管理器中,运行
SELECT id FROM sysobjects WHERE (name = 'userinfo') ;
得到的是 : 478624748
大家可以看到,我曾经用另外一种动态查询语句。就是 PB中的 dynamic sql 3.
我跟踪上述语句。得到的是一个‘0’ ;不知道错在哪里,拜求回复、。
问题解决了:
就是单双引号的问题。
“userinfo” 被当作了字段名。 ‘userinfo’才被当作字符串。
SO:
SqlCur = "SELECT sysobjects.id FROM sysobjects WHERE name = ‘userinfo’”
worked!
问题2:
SELECT syscolumns.name FROM syscolumns WHERE syscolumns.id = 478624748
得到的是一个 @server_name
不是 字段名的部分。
请各位大侠赐教。
代码如下:
string Rowname // 列名
long RowNo //
string SqlCur
SqlCur = "SELECT sysobjects.id FROM sysobjects WHERE name = userinfo"
DECLARE curNo CURSOR FOR SELECT sysobjects.id FROM sysobjects WHERE name = "userinfo" ;
//PREPARE SQLSA FROM :SqlCur ;
OPEN curNo ;
FETCH curNo INTO :RowNo ;
CLOSE curNo ;
MessageBox('RowName' ,"=" + string(RowNo))
close (w_main)
在数据库管理器中,运行
SELECT id FROM sysobjects WHERE (name = 'userinfo') ;
得到的是 : 478624748
大家可以看到,我曾经用另外一种动态查询语句。就是 PB中的 dynamic sql 3.
我跟踪上述语句。得到的是一个‘0’ ;不知道错在哪里,拜求回复、。
问题解决了:
就是单双引号的问题。
“userinfo” 被当作了字段名。 ‘userinfo’才被当作字符串。
SO:
SqlCur = "SELECT sysobjects.id FROM sysobjects WHERE name = ‘userinfo’”
worked!
问题2:
SELECT syscolumns.name FROM syscolumns WHERE syscolumns.id = 478624748
得到的是一个 @server_name
不是 字段名的部分。
转载于:https://blog.51cto.com/true2love/108941