找回密码
 加入
搜索
查看: 2209|回复: 6

[系统综合] 【已解决】求助数据库操作语句问题!谢谢!

[复制链接]
发表于 2016-7-7 13:41:21 | 显示全部楼层 |阅读模式
本帖最后由 mwh79 于 2016-7-7 15:30 编辑

Dim $Server = "127.0.0.1" ;SQL主机名称
Dim $ID = "sa" ; 登入数据库主机的账号  一般都会用sa
Dim $pw = "12." ;登入数据库主机的密码
DIM $Company="qsx" ;数据库名称
While 1
$conn = ObjCreate("ADODB.Connection")
$RS = ObjCreate("ADODB.Recordset")

$conn.Open ("driver={SQL Server};server="&$Server&";uid="&$ID&";pwd="&$pw&";database="&$Company)  ;主机名IP127.0.0.1,UID=用户,PWD=密码,database=数据库名  
$RS.ActiveConnection = $conn ; 设定RS 是 conn 的集合 重要的部份
;标准的 读取数据 循环模式语法
;几乎 所有的查询都只要套用这个模式就可以了......

$RS.open ("select count from  serverinfo");


上面这段语句,如果数据库中 count和 serverinfo存在,运行没有问题,但是如果不存在,这会程序报错,有没有办法使其不存在这设置RS=0??

If @error   没有效果呀,求教!
发表于 2016-7-7 13:52:44 | 显示全部楼层
回复 1# mwh79

你個觀念是有點問題的..........

既然是資料庫  你當然得 知道 有甚麼表 跟欄位 .....因此  表名 跟欄位名 一定不能錯.....
所以   第一個觀念是   count和 serverinfo 不會 ....不存在

但是 可能還沒建立  因此  在一開始的時候 你必須要檢查資料庫是否存在   不存在就得要建立

;檢查自訂資料庫  MACCorrespond  是否存在
$RS.open ("select name from sysobjects where name ='MACCorrespond' and type = 'U'")
IF ($RS.eof or $RS.bof) THEN
        $conn.Execute($SQLCreateDB3); 不存在就建立資料庫   $SQLCreateDB3  是建立資料庫的語法 變數
Else
        $DBcheck = 3
EndIf
$RS.close;關閉數據分表
;$conn.close;關閉資料庫連接
 楼主| 发表于 2016-7-7 14:12:53 | 显示全部楼层
可能是我没有说清楚,是这样的,有些数据库是没有这个表和字段,程序只针对有这个表和字段的操作,这只是脚本的一部分,所以需要脚本,在查不到这些表和字段的时候,还能继续工作,而不是报错。
发表于 2016-7-7 14:16:03 | 显示全部楼层
回复 3# mwh79

我剛剛不是說了  ...............先檢查 有沒有這個資料庫....

語法 上面給你了   用那個語法 就可以查出 資料庫存在不存在....

字段也同樣的 可以先查詢  

全部通過的 才 下  你要跑的查詢語法即可.............

而  你想要的
有没有办法使其不存在这设置RS=0??


這個是不存在的
发表于 2016-7-7 14:46:49 | 显示全部楼层
回复 3# mwh79

select count(name) from syscolumns

where id=(select id from sysobjects where name='表格名') and name='欄位名'

傳回0則欄位不存在
 楼主| 发表于 2016-7-7 14:56:48 | 显示全部楼层
不行,还是脚本报错,“”请求的动作失败“”,真是无解呀
 楼主| 发表于 2016-7-7 15:30:21 | 显示全部楼层
好了,谢谢了,测试成功!谢谢老大高手
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-23 04:50 , Processed in 0.074912 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表