|
Неонятное поведение ADODB.Connection (или Recordset)
|
|||
---|---|---|---|
#18+
Аксесовская база mdb, Win7, 32 Происходит следующее: открываю рекордсет rezult_RS.Open, свойство RecordCount>0, записи есть. Работаю, пишу новый код в другом модуле , запускаю этот же пример, и вдруг значение свойства RecordCount не определено, записей нет. Выполняю все то же в пошаговом режиме - работает. Пытаюсь еще раз в рантайме - записей нет. Перезапускаю комп - работает. После нескольких выполнений - отпят записей нет!! Хелп! Создаю соединение Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Функции передается переменная SMART_CNN Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2015, 14:54 |
|
Неонятное поведение ADODB.Connection (или Recordset)
|
|||
---|---|---|---|
#18+
SMART_CNN.ConnectionString ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2015, 15:21 |
|
Неонятное поведение ADODB.Connection (или Recordset)
|
|||
---|---|---|---|
#18+
ADODB.Recordset.RecordCountUse the RecordCount property to find out how many records are in a Recordset object. The property returns -1 when ADO cannot determine the number of records or if the provider or cursor type does not support RecordCount. Reading the RecordCount property on a closed Recordset causes an error. If the Recordset object supports approximate positioning or bookmarks—that is, Supports (adApproxPosition) or Supports (adBookmark), respectively, return True—this value will be the exact number of records in the Recordset, regardless of whether it has been fully populated. If the Recordset object does not support approximate positioning, this property may be a significant drain on resources because all records will have to be retrieved and counted to return an accurate RecordCount value. Попробуй проверять Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2015, 15:28 |
|
Неонятное поведение ADODB.Connection (или Recordset)
|
|||
---|---|---|---|
#18+
Akina, пробовал я их проверять... В пошаге: CnnStr: Provider=Microsoft.ACE.OLEDB.12.0;User ID=уууу;Data Source=\\бла-бла\Access_version\FTTB_BC_2014.accdb;Mode=Share Deny None;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password=пароль;Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=False;Jet OLEDB:Bypass UserInfo Validation=False;Jet OLEDB:Limited DB Caching=False;Jet OLEDB:Bypass ChoiceField Validation=False; BOF: False EOF: False В рантайме: CnnStr: Provider=Microsoft.ACE.OLEDB.12.0;User ID=уууу;Data Source=\\бла-бла\Access_version\FTTB_BC_2014.accdb;Mode=Share Deny None;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password=пароль;Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=False;Jet OLEDB:Bypass UserInfo Validation=False;Jet OLEDB:Limited DB Caching=False;Jet OLEDB:Bypass ChoiceField Validation=False; BOF: True EOF: True Кстати, на всякий случай, есть там в запросе внешняя БД: Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2015, 15:47 |
|
Неонятное поведение ADODB.Connection (или Recordset)
|
|||
---|---|---|---|
#18+
LockpickupВ рантайме: [skipped] BOF: True EOF: True Получается, что рекордсет не фетчит записи на клиента, пока они реально не потребуются. Так что придётся сотворять нечто типа Код: vbnet 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2015, 16:38 |
|
Неонятное поведение ADODB.Connection (или Recordset)
|
|||
---|---|---|---|
#18+
Дык а что ж он после рестарта компа первые N (где N - величина не постоянная) раз фетчит, а потом как-то разучивается это делать... Вот я чего понять не могу и, соответсвенно, как лечить не понятно... Попробовал после открытия рекордсета сделать Sleep 10 000 - не помогло. И нельзя сделать set rezult_RS=SMART_CNN.Excecute (SQL_query) т.к. я потом использую rezult_RS.Find ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2015, 16:47 |
|
Неонятное поведение ADODB.Connection (или Recordset)
|
|||
---|---|---|---|
#18+
Тебе нужен код, который ВСЕГДА даёт один и тот же результат, верно? значит, ориентируйся на наихудшее. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2015, 16:58 |
|
Неонятное поведение ADODB.Connection (или Recordset)
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2015, 22:28 |
|
Неонятное поведение ADODB.Connection (или Recordset)
|
|||
---|---|---|---|
#18+
Навряд ли это мой случай. У меня рекордсет вообще не имеет записей (в рантайм). А в пошаге все ОК. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2015, 15:02 |
|
Неонятное поведение ADODB.Connection (или Recordset)
|
|||
---|---|---|---|
#18+
Ахтунг!!! Помог Sleep 1000 после Код: vbnet 1.
А вот 100 миллисекунд не достаточно. Понятно, что это нифига не решение... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2015, 15:11 |
|
Неонятное поведение ADODB.Connection (или Recordset)
|
|||
---|---|---|---|
#18+
При открытии рекордсета всегда объявляй явно .CursorLocation = adUseClient ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2015, 15:54 |
|
Неонятное поведение ADODB.Connection (или Recordset)
|
|||
---|---|---|---|
#18+
Rivkin Dmitry, добавил перед открытием строку rezult_RS.CursorLocation = adUseClient. Не спасло... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2015, 16:03 |
|
|
start [/forum/topic.php?fid=45&msg=39138325&tid=1614112]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 145ms |
0 / 0 |