Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Не сразу обновляется поле в таблице Access
|
|||
|---|---|---|---|
|
#18+
Суть моих действий: Две процедуры на vb.net, выполняются последовательно Первая - выбирает из локальной базы Access новые записи из таблицы справочника и отправляет их на sql server, обратно получает ID которые получают записи на сервере и пишет эти ID (в качестве обновления поля этого справочника) в местную базу Железно работает, многократно проверено. Вторая - Выбирает записи из подчиненной таблицы местной базы Access с ID полученными в процедуре 1 и отправлет их на сервер. Так вот, вторая процедура не видит полученые ID из предыдущего шага, отсылает упорно Null. Если между вызовами этих процедур поставить вызов закрытия коннекта к ACCESS и тут же его открытие - ОК, без вопросов, все нормально. Блокировок (по крайней мере насколько могу судить не очень разбираясь в jet) не возникает. Не хочу грузить приведением большого количества кода, тем не менее прошу поделиться тех кто имел такую проблему ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2004, 04:08 |
|
||
|
Не сразу обновляется поле в таблице Access
|
|||
|---|---|---|---|
|
#18+
Nedostatochno informazii. Hotelos' bi kusok koda, togda otvet bil bi bolee tochnim.Esli dopustit' chto ispol'zuyutsya transaction to po umolchaniyu ADO ispol'zuet "ReadComitted" level. Eto znachit chto "data zapisannaya odnoi transakziei budet dostupna posleduyuschei tol'ko posle togo kak pervaya budet zakonchena (commit)". Zitata iz knigi. Mozet v etom problema? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2004, 19:52 |
|
||
|
Не сразу обновляется поле в таблице Access
|
|||
|---|---|---|---|
|
#18+
Между вызовами надо воткнуть Doevents Если одного оператора мало, то подряд парочку. А вообще-то положено коннект закрывать-открывать. Max Pro ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2004, 15:13 |
|
||
|
Не сразу обновляется поле в таблице Access
|
|||
|---|---|---|---|
|
#18+
Max Pro - Doevents не помогает... OstapBender маленьким куском кода не отделаться, хорошо, если не лень посмотри: На сервере: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. В MDB файле: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. VB код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. После срабатывания на сервере в таблице ChildTable в поле ParentId стоит везде Null ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 13:05 |
|
||
|
Не сразу обновляется поле в таблице Access
|
|||
|---|---|---|---|
|
#18+
Прошу прощения, во второй таблице Access поле IdParent - Числовой (длинное целое) разумеется, это внешний ключ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 15:04 |
|
||
|
Не сразу обновляется поле в таблице Access
|
|||
|---|---|---|---|
|
#18+
Боже, ну ты и накрутил кодов! По-моему проще можно. Тогда и глюка этого не будет и в помине. А так конечно - у тебя запросы-то параллельно выполняются. Вот как бы я сделал: 1. В Аксесе подключил бы нужные таблицы из SQL-сервера как связанные. Это дало бы сразу преимущество, что коннекшинов вместо трёх всего один будет. 2. Сделал бы запросик уже через Аксес, получающий ID. И потом следом 2-й. А между ними не забыл бы вставить DoEvents(). 3. Кроме того напоминаю, что закрывать коннекшн полезно после каждого запроса - это правило особенно действует в ASP.NET (если под Win пишешь, то необязательно, хотя и желательно.) Ну вот и всё. P.S. извини, что долго не был на связи Max Pro ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2004, 19:19 |
|
||
|
Не сразу обновляется поле в таблице Access
|
|||
|---|---|---|---|
|
#18+
Кстати, если не в лом, скинь пожалуйста как выглядит полностью твой коннекшнстринг для sql-server. А то мне по работе это скоро понадобится. Max Pro ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2004, 19:21 |
|
||
|
Не сразу обновляется поле в таблице Access
|
|||
|---|---|---|---|
|
#18+
Кодов по минимуму :-) Проще уж некуда, в реале это самопальная репликация Access <> SQL sever. Параллельность выполенения этим и вызвана, что это меняет принципиально? Насчет закрытия/открытия соеденения согласен, практика показывает что так только и работает, хотелось бы только знать - почему? ПС: Примерную строку для соеденения с SQLserver проще всего получить поместив на форму SQL connection, и воспользоваться мастером для ConnectionString ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.01.2005, 20:24 |
|
||
|
Не сразу обновляется поле в таблице Access
|
|||
|---|---|---|---|
|
#18+
Есть такое правило: "Коммитить" транзакцию. До ее завершения внесенным данным "не верить". Закрытие соединения собственно и служит этим "коммитом". С Новым годом! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2005, 11:15 |
|
||
|
Не сразу обновляется поле в таблице Access
|
|||
|---|---|---|---|
|
#18+
Да, точно! Спасибо Воробьёфф. Кстати оказалось что подтверждение транзакции в Акцессе не только закрытие коннешна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2005, 22:50 |
|
||
|
|

start [/forum/topic.php?fid=17&gotonew=1&tid=1353866]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
194ms |
get topic data: |
12ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
| others: | 287ms |
| total: | 584ms |

| 0 / 0 |
