web-dev-qa-db-ja.com

SQL Server2005に接続してテーブルを更新するVBScript

私はVBScriptを初めて使用します。誰かがVBScriptを使用してSQLServer 2005(OLEDB)に接続し、データベースのテーブルを更新するのを手伝ってくれませんか。

私のサーバー:sql14\qw
私のデータベース:フレット
ユーザーID:管理者
パスワード:合格
テーブル名:ルックアップ

7
san
Const DB_CONNECT_STRING = "Provider=SQLOLEDB.1;Data Source=sql14\qw;Initial Catalog=fret;user id ='admin';password='pass'"
Set myConn = CreateObject("ADODB.Connection")
Set myCommand = CreateObject("ADODB.Command" )
myConn.Open DB_CONNECT_STRING
Set myCommand.ActiveConnection = myConn
myCommand.CommandText = "UPDATE lookup SET Col1 = 'Hello'"
myCommand.Execute
myConn.Close

統合Windowsセキュリティを使用してテストされましたが、SQLログインではテストされませんでした。

11
Justin Largey

実際、簡単なことです。まず、使用する接続とレコードセットを定義する必要があります。

Set AdCn = CreateObject("ADODB.Connection")
Set AdRec = CreateObject("ADODB.Recordset")

その後は、接続文字列がすべてです。

connstr="Provider=SQLOLEDB.1;Data Source=" & server & ";Initial Catalog=" & database & ";user id = '" & uid & "';password='" & pwd & "'"

文字列はいくつかの部分で構成されています。

  • プロバイダー:確立する接続の種類(この場合はSQL Server)。

  • データソース:接続しているサーバー。

  • 初期カタログ:データベースの名前。

  • ユーザーID:ユーザー名。

  • パスワード:ええと、あなたのパスワード。 ;)

Windowsのログイン資格情報を使用し、スクリプトをローカルで実行している場合は、ユーザー名とパスワードのフィールドを次のように置き換えることができます。

Integrated Security=SSPI

もちろん、これはWebサイトでスクリプトを使用している場合は機能しないため、ユーザー名とパスワードを明示的に使用する必要があります。次に、レコードセットを開き、SQLクエリを渡して、返されたデータを配列としてキャプチャします。

SQL="Select @@version as name"
AdRec.Open SQL, AdCn,1,1
queryReturn=Adrec("name")

データは配列として返されることを覚えておいてください(多くの場合、2次元であり、必要な結果は実際には配列の2次元にあります!)。結果の最後の空白を削除するためにトリムするか、 Leftなどの文字列関数を使用して結果を解析します。個人的には、隠された空白に数え切れないほど何度も噛まれてきたので、変数に割り当てている間は常に結果をTrim()します。

8
Memitim