|
|
|
проблема с delete
|
|||
|---|---|---|---|
|
#18+
Подскажите в чем может быть проблема? есть следующая команда в модуле Access'a , а точнее к таблице на MsSQL server, доступ к которой организован через ODBC: db.Execute "delete * from Пассажиры Where ДатВыл Between #" & Format(data, "mm/dd/yy") & "# and #" & Format(data2, "mm/dd/yy") & "#;", dbSeeChanges однако заметил, что чем больше становится таблица, тем дольше обрабатывается эта комманда (к примеру при 72000 записях в таблице, удаление 16000 записей из них не происходит и за 1 час!!!!!). Через Enterprise Manager удаление происходит за секунду!!!! Кто что может мне сказать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2004, 14:25:04 |
|
||
|
проблема с delete
|
|||
|---|---|---|---|
|
#18+
Переход на ADP спасёт, я вот тоже подумываю, либо хранимки надо делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2004, 14:27:36 |
|
||
|
проблема с delete
|
|||
|---|---|---|---|
|
#18+
Проблемы тут нет никакой, просто твой Jet-ODBC запрос преобразуется в 16000 запросов к серверу, а 16 тыс запросов выполняются медленнее, чем один. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2004, 14:43:18 |
|
||
|
проблема с delete
|
|||
|---|---|---|---|
|
#18+
Добавлю вот что: 1. есть ли индекс по ДатВыл ? 2. Можно создать "Запрос к серверу" в Access. Он будет транслироваться на сервер так как написан и не преобразовываться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2004, 14:46:32 |
|
||
|
проблема с delete
|
|||
|---|---|---|---|
|
#18+
Можно решить это каким либо другим образом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2004, 14:47:49 |
|
||
|
проблема с delete
|
|||
|---|---|---|---|
|
#18+
>Каким-либо другим Дык АДО-коннекшн создать, и в нем почикать свои записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2004, 14:49:54 |
|
||
|
проблема с delete
|
|||
|---|---|---|---|
|
#18+
Например? Я не очень силен в ADO.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2004, 15:28:53 |
|
||
|
проблема с delete
|
|||
|---|---|---|---|
|
#18+
Tsaryov SДобавлю вот что: 1. есть ли индекс по ДатВыл ? 2. Можно создать "Запрос к серверу" в Access. Он будет транслироваться на сервер так как написан и не преобразовываться. а как можно из модуля запустить выполнение созданного запроса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2004, 15:30:31 |
|
||
|
проблема с delete
|
|||
|---|---|---|---|
|
#18+
в лоб DoCmd.OpenQuery + отключить варнинги ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2004, 15:39:41 |
|
||
|
проблема с delete
|
|||
|---|---|---|---|
|
#18+
а не в лоб QPL - твой запрос к серверу Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2004, 15:42:30 |
|
||
|
проблема с delete
|
|||
|---|---|---|---|
|
#18+
что-бы не менять настройки ODBC запроса к серверу можешь создать один раз и мучить текст перед запуском,хотя создать новый и прописать connect не проблема Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2004, 15:48:17 |
|
||
|
проблема с delete
|
|||
|---|---|---|---|
|
#18+
Shuhardа не в лоб QPL - твой запрос к серверу Код: plaintext 1. 2. 3. 4. 5. пишет что "невозможно запустить запрос на выборку" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2004, 16:16:14 |
|
||
|
проблема с delete
|
|||
|---|---|---|---|
|
#18+
>Например? Я не очень силен в ADO.... Из 1С пример:-) Поди разберетесь CNN=СоздатьОбъект("ADODB.Connection"); стр1="Provider = SQLOLEDB.1; Password ="+Пароль+"; Persist Security Info = True; User ID ="+Польз+"; Initial Catalog ="+База+"; Data Source ="+Сервер; CNN.Open(стр1); Cnn.Execute("Delete From t1") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2004, 16:28:07 |
|
||
|
проблема с delete
|
|||
|---|---|---|---|
|
#18+
Nikolay Gerasimov Shuhardа не в лоб QPL - твой запрос к серверу Код: plaintext 1. 2. 3. 4. 5. пишет что "невозможно запустить запрос на выборку" а текст СВОЕГО QPL Николай не покажешь ? вроде договаривались что запрос к серверу не должен возвращать ничего а должен данные модифицировать(Delete Create Alter Insert + VAlues ) а у тебя Select - куда QueryDef девать добытое немеренным трудом! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2004, 17:32:12 |
|
||
|
проблема с delete
|
|||
|---|---|---|---|
|
#18+
Private Sub DelRecTable(ByVal datN As Date, ByVal datK As Date) Dim dbsCurrent As Database Dim qryTest As DAO.QueryDef Set dbsCurrent = CurrentDb Set qryTest = dbsCurrent.QueryDefs("Пассажиры") Debug.Print qryTest.SQL qryTest.SQL = "delete from Пассажиры Where ДатВыл Between '" & Format (datN, "mm/dd/yy") & "'" and '" & Format(datK, "mm/dd/yy") & "';" qryTest.Execute qryTest.Close Set qryTest = Nothing End Sub Незнаю, Вы это имели ввиду под QPL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2004, 17:52:09 |
|
||
|
проблема с delete
|
|||
|---|---|---|---|
|
#18+
Shuhard Nikolay Gerasimov Shuhardа не в лоб QPL - твой запрос к серверу Код: plaintext 1. 2. 3. 4. 5. пишет что "невозможно запустить запрос на выборку" а текст СВОЕГО QPL Николай не покажешь ? вроде договаривались что запрос к серверу не должен возвращать ничего а должен данные модифицировать(Delete Create Alter Insert + VAlues ) а у тебя Select - куда QueryDef девать добытое немеренным трудом! Private Sub DelRecTable(ByVal datN As Date, ByVal datK As Date) Dim dbsCurrent As Database Dim qryTest As DAO.QueryDef Set dbsCurrent = CurrentDb Set qryTest = dbsCurrent.QueryDefs("Пассажиры") Debug.Print qryTest.SQL qryTest.SQL = "delete from Пассажиры Where ДатВыл Between '" & Format (datN, "mm/dd/yy") & "'" and '" & Format(datK, "mm/dd/yy") & "';" qryTest.Execute qryTest.Close Set qryTest = Nothing End Sub Незнаю, Вы это имели ввиду под QPL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2004, 09:17:50 |
|
||
|
проблема с delete
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. выдача debug.print Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2004, 16:45:08 |
|
||
|
проблема с delete
|
|||
|---|---|---|---|
|
#18+
По поводу легкого генерирования запросов к серверу. Работаю в 97 аксе. Использую одновременно локальные таблицы и серверные. Сервер и база на нем всегда одна и та же. Придумал себе набор элементов, позволяющих эффективно создавать сохраненные запросы в многопользовательской среде, избегая конфликтов. При открытии базы создается запись о сессии с уникальным кодом. функция query_gen_fun создает запросы с уникальным именем и кодом сессии. При выходе закрывается сессия и грохаются все запросы в ней сделаные. Настройки сервера задаются прямо в коде функции. Пример приложен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2004, 19:57:20 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32612802&tid=1673038]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 315ms |

| 0 / 0 |
