СУБД: MS SQL Server
Клиент: VB6, Janus GridEX (но это не очень важно)
вызывается хранимая процедура:
- Код: Выделить всё
Set CN = New ADODB.Connection
CN.CursorLocation = adUseServer
CN.ConnectionString = "Provider=SQLOLEDB..........."
CN.Mode = adModeReadWrite
CN.Open
Set CMD = New ADODB.Command
CMD.CommandText = "lsp_GetEXOdd"
CMD.CommandType = adCmdStoredProc
Set CMD.ActiveConnection = CN
Set RS = New ADODB.Recordset
RS.CursorLocation = adUseServer
RS.CursorType = adOpenDynamic
RS.LockType = adLockOptimistic
Set RS = CMD.Execute
GridEX1.HoldFields
Set GridEX1.ADORecordset = RS
Подводные камни:
1.
- Код: Выделить всё
Set RS = CMD.Execute
Может есть способ вызывать хранимые процедуры НЕ используя объект Command ?
Еще вопрос:
Объясните пожалйста ПО-РУССКИ: чем отличается adUseServer от adUseClient ? Что предпочтительней использовать ?
Просто Janus GridEX не хочет работать в режиме adUseServer (не знаю почему), и в тоже время слышал, что
это что правда ?наборы записей, возвращаемые ADODB.COMMAND, имеют CursorLocation = adUseServer? ВСЕГДА! И всвязи с этим полученные наборы нельзя использовать в качестве источника данных для bound-контроллов (в частном случае TrueDBGrid)
вот такое невеселое положение дел...
ИТАК:
1. Почему Command измяняет LockType на adLockReadOnly (можно ли с этим бороться) ?
2. Можно ли вызывать хранимые процедуры без Command
3. adUseServer vs adUseClient
Заранее спасибо всем ответившим...