|
|
|
Выпольнить запрос SQL из 1С
|
|||
|---|---|---|---|
|
#18+
Прошу прощения, я немного наколол народ, на самом деле Value берётся через переменную: Код: plaintext 1. Нашёл кое каие доки и напал на след, там вообще указывается, что NextRecordSet ОЧИЩАЕТ РекордСет и выполняет следующую часть запроса (Select), то есть вернуться вряд ли получиться. Второй момент, что там описывается, это возможность двигаться в двух направлениях и вообще море возможностей, типа поиска, получаения, удаления, добавления строк, столбцов и даже сортировка и фильтры или Save в XML. Правда я, уже интуитивно, пробовал PreviousRecordSet, но это не сработало. Так вот, там сказано, что работать всё-таки - будет, надо только указать в параметре открытия как-то OpenStatic, что немного замедлит работу. И самое главное - будет возможность получить RecordCount, что вообще решает все мои проблемы. Ну и ещё какой-то метод Clone(), как запасной вариант. Замечу ещё, что кроме EOF ставится и флаг BOF, так что можно проверять отсутствие записей, если оба этих флага, одновременно True. Осталось формализовать строчку отрытия.. если кто знает, напишите пожалуйста, у меня с такими элементарными вещами, всегда много мороки - только изучаю всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2009, 14:54 |
|
||
|
Выпольнить запрос SQL из 1С
|
|||
|---|---|---|---|
|
#18+
Ничего у меня не получается, пишу и просто СоединениеSQL.Open("Driver={SQL Server Native Client 10.0};Server=SQLVIRTUAL\SQLEXPRESS;Database=EVE;Trusted_Connection=Yes;CursorType=adOpenStatic"); и без CyrsorType, вроде бы не ругается, вроде бы разрешает сделать ParamCount, но результат всегда -1 и вот что написано в хелпе: "Свойство Recordset.RecordCount нормально функционирует только для курсоров типа Static и Keyset. Для курсоров типа ForwardOnly и Dynamic оно возвращает (-1), поскольку драйвер подключения не может определить количество записей." Ну прямо хоть Requery() делай или тупо забить целый столбец значением количества строк... :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2009, 16:44 |
|
||
|
Выпольнить запрос SQL из 1С
|
|||
|---|---|---|---|
|
#18+
Нашёл прекрасную доку и всё заработало . Ошибка была в том, что установить тип курсора можно только в двух местах: в обработчике Willexecute, который вызывается перед вызовом метода Execute объекта recordSet (что-то там многовато параметров, возможно, они не обязательные, но меня - очень напугало, тем более, что не совсем понятно само это всё будет вызваться или всё-таки надо вызывать.. так и вьются в голове CallBack и Overload procedure) Либо в самом ObjRecordSet.CursorType=3, но уже с последующим RecordSet.Open("запрос", ObjConnections); Слегка подрезаный реальный код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ParamCount заработал - Ура! Всем спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2009, 18:39 |
|
||
|
|

start [/forum/topic.php?fid=28&msg=36370208&tid=1522928]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
547ms |
get topic data: |
15ms |
get forum data: |
4ms |
get page messages: |
38ms |
get tp. blocked users: |
2ms |
| others: | 231ms |
| total: | 855ms |

| 0 / 0 |
