Досталось в наследство приложение VB6 + MSSQLServer2000.
В проге используется DataGrid. В настоящее время все тексты запросов написаны прямо в коде
With rsgrid
.ActiveConnection = cn
.Source = тут может быть просто целая поэма на килобайт
.CursorLocation = adUseClient
.LockType = adLockBatchOptimistic
.Open
Set DataGrid1.DataSource = rsgrid
End With
Я решил использовать хранимые процедуры сервера, что вполне естесственно, нафига ж тогда сервер! :)
проблема вот в чём:
если использовать ADODB.Command.Execute для выполнения ХП или Connection.Execute, то возвращается объект Recordset со свойством forwardonly. И при назначении его датасорсом для DataGrid, возникает ошибка: типа объект не поддерживает закладки и не может быть использован. Это понятно мне, так устроено ADO, или я не прав и execute может создать курсор с произвольным доступом, да ещё и на стороне клиента?
Огромная просьба, помогите найти решение, пожалуйста, возможно я неправильно использую DataGrid.
(Переходить на другой контрол тоже нежелательно, прога уже установлена на многих компах и заменить просто экзешник легче, чем регить ещё и новый контрол)
Ответить
|