找回密码
 加入
搜索
查看: 6032|回复: 13

[系统综合] AU3能否SQL2000查询分析器自动执行代码

  [复制链接]
发表于 2011-12-30 09:09:10 | 显示全部楼层 |阅读模式
由于经常遇到数据库置疑问题,多半都是由于日志文件破坏造成的,能否做个程序能自动执行查询分析器里面的代码,修复置疑问题。

1 use master
go
sp_configure 'allow updates',1
go
reconfigure with override
go
  
2 update sysdatabases set status=-32768 where dbid=DB_ID('pos')

3 dbcc rebuild_log('pos','D:\database\MSSQL\Data\pos_log.ldf')

4 dbcc checkdb('pos')

5 sp_dboption 'pos','dbo use only','false'

6 sp_configure 'allow updates',0
go
reconfigure with override
go
上面是查询分析器的五句话。修复日志的。
SQL查询分析器:C:\Program Files\Microsoft SQL Server\80\Tools\Binn\isqlw.exe
sa密码为空
发表于 2011-12-30 09:30:24 | 显示全部楼层
回复 1# liuxinzhong

應該不用動到查詢器吧


Dim $Server = "SERVER"
Dim $Company = "DBASE01"


$conn = ObjCreate("ADODB.Connection")
$RS = ObjCreate("ADODB.Recordset")
$conn.Open ("driver={SQL Server};server="&$Server&";uid=sa;pwd=dsc;database="&$Company);主機名IP127.0.0.1,UID=用戶,PWD=密碼,database=資料庫名   ※
$RS.ActiveConnection = $conn

$conn.Execute("use master ")
$conn.Execute("sp_configure 'allow updates',1")
$conn.Execute("update sysdatabases set status=-32768 where dbid=DB_ID('pos')")
$conn.Execute("dbcc rebuild_log('pos','D:\database\MSSQL\Data\pos_log.ldf')")
$conn.Execute("dbcc checkdb('pos')")
$conn.Execute("sp_dboption 'pos','dbo use only','false'")
$conn.Execute("sp_configure 'allow updates',0")
$conn.Execute("reconfigure with override ")
 楼主| 发表于 2011-12-30 10:03:16 | 显示全部楼层
回复 2# kk_lee69
Dim $Server = "CHINA-81CE92F17"
Dim $Company = "pos"


$conn = ObjCreate("ADODB.Connection")
$RS = ObjCreate("ADODB.Recordset")
$conn.Open ("driver={SQL Server};server="&$Server&";uid=sa;pwd=ok;database="&$Company);主機名IP127.0.0.1,UID=用戶,PWD=密碼,database=資料庫名   ※
$RS.ActiveConnection = $conn

$conn.Execute("use master ")
$conn.Execute("sp_configure 'allow updates',1")
$conn.Execute("update sysdatabases set status=-32768 where dbid=DB_ID('pos')")
$conn.Execute("dbcc rebuild_log('pos','D:\database\MSSQL\Data\pos_log.ldf')")
$conn.Execute("dbcc checkdb('pos')")
$conn.Execute("sp_dboption 'pos','dbo use only','false'")
$conn.Execute("sp_configure 'allow updates',0")
$conn.Execute("reconfigure with override ")
本机服务器名字,数据库名字,密码,都已经改过
 楼主| 发表于 2011-12-30 10:05:28 | 显示全部楼层
疑问在这2句话
Dim $Company = "DBASE01"
$conn.Open ("driver={SQL Server};server="&$Server&";uid=sa;pwd=ok;database="&$Company)

这里2个DBASE01是什么。我刚才以为是数据库名字。不知道对不对
发表于 2011-12-30 10:21:17 | 显示全部楼层
$Server   主機名稱   或者 主機的IP 位置
$Company  本來指的是 資料庫的名稱.....重點來了 意思是  你使用2000查詢器的時候....你登入以後  在你的畫面的上方  會有一個 可以選擇資料庫的地方.......  因為你還跑了 預存程序......所以你得注意.....如果你選擇的資料庫 並沒有存放這些預存程序 是有可以能不可以跑的

所以 簡單的方式  是  你先 使用 查詢器   先確定可以跑   然後  看看 你查詢器的上方  是 位於 MASTER 還是 其他資料庫..........再把這邊的值   改成 查詢器 上方的值

SA 是你的 帳號    OK 是你的密碼
发表于 2011-12-30 10:22:50 | 显示全部楼层
回复 4# liuxinzhong


    $Server   主機名稱   或者 主機的IP 位置
$Company  本來指的是 資料庫的名稱.....重點來了 意思是  你使用2000查詢器的時候....你登入以後  在你的畫面的上方  會有一個 可以選擇資料庫的地方.......  因為你還跑了 預存程序......所以你得注意.....如果你選擇的資料庫 並沒有存放這些預存程序 是有可以能不可以跑的

所以 簡單的方式  是  你先 使用 查詢器   先確定可以跑   然後  看看 你查詢器的上方  是 位於 MASTER 還是 其他資料庫..........再把這邊的值   改成 查詢器 上方的值

SA 是你的 帳號    OK 是你的密碼
发表于 2011-12-30 10:45:20 | 显示全部楼层
回复 6# kk_lee69

結果如何應該回復一下吧@@
 楼主| 发表于 2011-12-30 13:39:31 | 显示全部楼层
回复 7# kk_lee69

代码好像执行前面几行后报错没有执行下去。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2011-12-31 09:48:29 | 显示全部楼层
出錯  的錯誤訊息是
发表于 2011-12-31 10:26:39 | 显示全部楼层
回复 8# liuxinzhong


    出錯  的錯誤訊息是
 楼主| 发表于 2011-12-31 10:30:20 | 显示全部楼层
回复 10# kk_lee69

你看看,现在的函数。对吗?
Func _zhiyi()
Dim $Server = "CHINA-81CE92F17"
Dim $Company = "master"


$conn = ObjCreate("ADODB.Connection")
$RS = ObjCreate("ADODB.Recordset")
$conn.Open ("driver={SQL Server};server="&$Server&";uid=sa;pwd=ok;database="&$Company&";");主機名IP127.0.0.1,UID=用戶,PWD=密碼,database=資料庫名   ※
If @error Then Exit
$RS.ActiveConnection = $conn
ProgressOn("进度条","正在为您修复,请耐心等待","0 %")
$conn.Execute("use master ")
$conn.Execute("sp_configure 'allow updates',1")
ProgressSet(20,"第一步完成")
$conn.Execute("update sysdatabases set status=-32768 where dbid=DB_ID('pos')")
$conn.Execute("dbcc rebuild_log('pos','D:\database\MSSQL\Data\pos_log.ldf')")
ProgressSet(40,"第二步完成")
$conn.Execute("dbcc checkdb('pos')")
ProgressSet(60,"第三步完成")
$conn.Execute("sp_dboption 'pos','dbo use only','false'")
ProgressSet(80,"第四步完成")
$conn.Execute("sp_configure 'allow updates',0")
$conn.Execute("reconfigure with override ")
ProgressSet(100,"完成修复")
EndFunc
发表于 2011-12-31 11:29:04 | 显示全部楼层
理論上沒錯吧!!  我的意思是 你說 會出錯  當你執行了程式  電腦自然會提示你 出錯在哪一行......如果你加處理COM 錯誤的語法  請先把語法拿掉  這樣才會發現你運行到哪一行出錯誤
 楼主| 发表于 2011-12-31 11:43:39 | 显示全部楼层
提示是697.这里的行数是如何看的?错误信息,因为代码压根没这么多行啊

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-1-3 11:07:15 | 显示全部楼层
回复 13# liuxinzhong

你的訊息應該是  編譯後 執行的吧??

要查哪一行出錯誤  不可以編譯......

要直接 用 Au3.EXE  去執行 你寫的au3 程式  這樣行數才會對

另外  如果 你引用了其他的 au3  例如

#include <array.au3>

也可能是指那邊的行數出錯誤....
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-20 19:38 , Processed in 0.115058 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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