我写了一个查询表字段的动态查询语句。可是不能得到我想要的结果。
请各位大侠赐教。

代码如下:

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
 
不是 字段名的部分。