1

私は VBScript の初心者で、次の問題に遭遇しました。SQL Server db からデータを取得し、RecordCount プロパティを許可します。次のコードはデータを取得しますが、RecordCount は無効になっています。このプロパティを有効にする方法

Const DB_CONNECT_STRING = "Provider=SQLOLEDB.1;Data Source=BUG\SQLSERVER2005;Initial Catalog=test;user id ='sa';password='111111'"
Set myConn = CreateObject("ADODB.Connection")
Set myCommand = CreateObject("ADODB.Command" )
myConn.Open DB_CONNECT_STRING
Set myCommand.ActiveConnection = myConn
myCommand.CommandText = ("select * from klienci k where k.indeks = " & oferty(16))
Set klienci = myCommand.Execute
4

2 に答える 2

0

Execute私の知る限り、オブジェクトのメソッドを使用しているときにカーソルの種類をCommand変更することはできません。また、レコードセットを取得した後にカーソルの種類を変更することもできません。ただし、次のようなものが機能する場合があります。

Const DB_CONNECT_STRING = "Provider=SQLOLEDB.1;Data Source=BUG\SQLSERVER2005;Initial Catalog=test;user id ='sa';password='111111'"

Set myConn = CreateObject("ADODB.Connection")
myConn.Open DB_CONNECT_STRING

query = "select * from klienci k where k.indeks = " & oferty(16)

Set klienci = CreateObject("ADODB.Recordset")
klienci.CursorLocation = 3 'adUseClient
klienci.CursorType     = 3 'adOpenStatic
klienci.LockType       = 1 'adLockReadOnly

klienci.Open query, myConn
于 2013-04-23T21:17:23.637 に答える
0

これは VBScript の問題ではなく、ADO の問題だと思います。

recordcountでは機能しないデフォルトの前方専用カーソルを使用していると思います。

そこにcursortype=adOpenStaticを貼り付けるべきだと思いますが、レコードセットオブジェクトを指定しているかどうかを判断するのに少し苦労しています-klienci?

その場合は、klienci.cursortype=adOpenStatic を試してください

于 2013-04-23T15:20:19.250 に答える