|
ODBC. RecordSet.Source не присваивается | ☑ | ||
|---|---|---|---|---|
|
0
DES
20.02.15
✎
13:26
|
Почему
Connection = Новый COMОбъект("ADODB.Connection"); Connection.ConnectionString = "driver=Firebird/InterBase(r) driver; Dialect=3; CHARSET=NONE; Uid=SYSDBA;Pwd=masterkey;Dbname="+ПолеИмениФайла+";Client=gds32.dll"; Connection.ConnectionTimeOut = 1200; Connection.CursorLocation = 3; Попытка Connection.Open(Connection.ConnectionString); Сообщить("Соединение успешно установлено !!!"); Исключение Сообщить("Невозможно установить соединение с Firebird:| "+ОписаниеОшибки()); КонецПопытки; RecordSet = Новый COMОбъект("ADODB.RecordSet"); RecordSet.ActiveConnection = Connection; RecordSet.CursorType = 3; почему RecordSet.Source = SQL; не присваивается? в отдладчике "" и выдает ошибку при RecordSet.Open(); |
|||
|
1
Jaap Vduul
20.02.15
✎
13:39
|
Видимо, потому что Source может быть как строкой, так и ссылкой на ADODB.Command и 1цэ этот момент не может корректно разрулить (кстати, с ActiveConnection такая же неприглядная картина).
Используй вариант RecordSet.Open(SQL); |
|||
|
2
DES
20.02.15
✎
13:46
|
(1) в отладчике разруливает как "строка"
|
|||
|
3
Jaap Vduul
20.02.15
✎
14:17
|
(2)
Потому что get_Sourse (т.е. в отладчике) - всегда строка. А у set_Sourse (т.е. RecordSet.Source = SQL) уже два варианта. |
|||
|
4
DES
24.02.15
✎
18:18
|
какие два?
тот же самый драйвер и код работают в 7.7 а 8 не понимает RecordSet.Source = SQL. т.е. не ругается, но не выполняется. хотя после выполнения там появляется текст SQL |
|||
|
5
Jaap Vduul
24.02.15
✎
18:40
|
(4)
У COM объекта свойство представляется парой методов set_Свойство(для присваивания свойству значения) и get_Свойство(для получения значения свойства). В данном случае у метода set_Sourse есть два варианта (два "перегруженных" метода в терминах ООП). Вариант №1: В качестве параметра в set_Sourse передаётся ссылка на ADODB.Command. (работает везде) Вариант №2: В качестве параметра в set_Sourse передаётся строка. (не работает в 1цэ 8) ЗЫ. Как только 8 версия вышла я сразу на такое напоролся, только не Source, а с ActiveConnection. |
|||
|
6
DES
24.02.15
✎
18:58
|
спс
|
|||
|
7
Torquader
24.02.15
✎
20:39
|
Проще SQL-запрос исполнять через Command, который уже RecordSet возвращает, а не наоборот.
|
| Форум | Правила | Описание | Секции | Поиск |