对于不同的数据源 查询语句是否又不同??

dingd 2002-09-24 12:22:49
我源了建了一个PB自己的数据库,
做了用户登陆界面,成功,

同样,我又作了一个SQL SERVER的数据库,

这次我在连接到PB的DB profile里的时候,没有选择建立到ODB ODBC里面,而是把这个SQL SERVER的
数据库连到PB的DB profile里的MSS Microsoft SQL SERVER里面。

同样在应用程序里写入了:
SQLCA.DBMS = "MSS Microsoft SQL Server 6.x"
SQLCA.Database = "password"
SQLCA.ServerName = "ZHD"
SQLCA.LogId = "sa"
SQLCA.AutoCommit = False
SQLCA.DBParm = ""

connect using sqlca;
If SQLCA.SQLCODE <> 0 Then
MessageBox('错误','连接数据库失败!',StopSign!)
Halt Close
else
MessageBoc('成功','连接成功!')
End If
open (w_logon)
运行后发现,数据库连接成功。

可是在我做确认按钮的代码时,编译后,提示我的select语句有问题。
我的是:(MSS Microsoft SQL SERVER)
select "DBO"."users_information"."users_id","DBO"."users_information"."users_password"
INTO :vName,:vPw
from "users_information"
where "users_information"."users_id"=:vPw_temp

原来(ODB ODBC):
SELECT"PASSword"."NAME","PASSword"."PASSWORD" INTO :vName,:vPw
from "password" WHERE "PASSword"."NAME"=:vName_temp;

我觉得没什么不对呀!可是编译不能通过!!
原来是对表"password",现在是对新数据库的表"users_information",

难道对于专业数据库MSS Microsoft SQL SERVER中表的查询,不能用下面:
select "DBO"."users_information"."users_id","DBO"."users_information"."users_password"
INTO :vName,:vPw
from "users_information"
where "users_information"."users_id"=:vPw_temp
这样的格式??不会吧!!

求教。

根据我最后的判断,好像就是对于ODB ODBC和MSS Microsoft SQL SERVER这样不同的数据源,
实用的select语句也不一样!
谁能给解释一下。
...全文
46 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
dingd 2002-09-25
  • 打赏
  • 举报
回复
where users_id=:vPw_temp不对!是我写错了。

where users_id=:id_temp

这不是关键!

问题是:
在MSS Microsoft SQL SERVER数据接口连接sql数据库的时候只能写成
SELECT users_id,users_password
INTO :vName,:vPw
FROM users_information
WHERE users_id =:id_temp;
这个样子。

在ODBC里可以用,也可以在MSS Microsoft SQL SERVER数据接口连接sql数据库的时候用。

另一种具体的写法:
SELECT "users_information"."users_id","users_information"."users_password"
INTO :vName,:vPw
FROM "users_information"
WHERE "users_information"."users_id" =:id_temp;
在ODBC里是可以用的,到了MSS Microsoft SQL SERVER数据接口连接sql数据库的时候就不能用了!!
我就是想知道这是为什么???
yanwenyong 2002-09-25
  • 打赏
  • 举报
回复
select users_id,users_password
INTO :vName,:vPw
from users_information
where users_id=:vPw_temp
using sqlca;
balloonman2002 2002-09-25
  • 打赏
  • 举报
回复
干吗搞那么麻烦,直接:

select users_id,users_password
INTO :vName,:vPw
from users_information
where users_id=:vPw_temp;

不行吗?:)
chengjian 2002-09-24
  • 打赏
  • 举报
回复
是的,数据库不同,SQL语句也不同。
如在ORACLE 中取系统时间为:
SELECT SYSDATE INTO :LDT_MYDATE FROM DUALUSING SQLCA;
在MSSQL SERVER 中取系统时间为:
SELECT TOP 1 GETDATE() FROM TABNAME
TABNAME表中必须有数据。
zhdleo 2002-09-24
  • 打赏
  • 举报
回复
不行!试过了!
佣工7001 2002-09-24
  • 打赏
  • 举报
回复
你把双引号去了吧
dingd 2002-09-24
  • 打赏
  • 举报
回复
myclife(反方向的钟--忏悔中)
好象不行,我试过了,不行呀??

我也知道要用标准sql,可是,数据接口不同,怎么不能像原来odbc里那样用
用sql ,,它不是说语句有问题,就是
"users_information"."users_id"两段中的"."不合适.

真不明白!
我把数据接口改回来,就好了!
ffilex 2002-09-24
  • 打赏
  • 举报
回复
建议在pb script里面写sql的时候使用标准SQL~~~
myclife 2002-09-24
  • 打赏
  • 举报
回复
对不起,少去了个引号

select users_id,users_password
INTO :vName,:vPw
from DBO.users_information
where users_id=:vPw_temp;
myclife 2002-09-24
  • 打赏
  • 举报
回复
改成这样:
select users_id,users_password"
INTO :vName,:vPw
from DBO.users_information
where users_id=:vPw_temp;
fjzjr 2002-09-24
  • 打赏
  • 举报
回复
问题可能出在“DBO”上。
dingd 2002-09-24
  • 打赏
  • 举报
回复
好!

那有没有知道用MSS Microsoft SQL SERVER数据接口连接sql数据库的时候!

sql语句有什么不同,一般都要怎么写??例如:select。

1,072

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧