Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / добавление записи в две таблицы одновременно / 17 сообщений из 17, страница 1 из 1
06.04.2004, 13:21
    #32470483
Max K
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавление записи в две таблицы одновременно
ситуация простая - клиетская часть добавляет данные одновременно ) двумя последовательными запросами в две связанные таблицы на сервере... вроде бы все просто и понятно, но работает почему-то с глюками. т.е. в какие-то моменты данные попадают только в одну таблицу, а в другую - нет... обработчик ошибок молчит, ролбэк - тоже... ((

может кто-нибудь что-нибудь посоветует?
...
Рейтинг: 0 / 0
06.04.2004, 13:33
    #32470502
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавление записи в две таблицы одновременно
Может, второй запрос так составлен, что он добавляет 0 записей.
...
Рейтинг: 0 / 0
06.04.2004, 13:47
    #32470520
Max K
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавление записи в две таблицы одновременно
оба запроса идентичны, единственное что задаются из разных мест )
первый текстом, второй (кот. не работает) из .tag...
...
Рейтинг: 0 / 0
06.04.2004, 13:51
    #32470530
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавление записи в две таблицы одновременно
Интересно было бы заняться отладкой. Посмотреть текст запроса перед запуском. Запустить вручную...
...
Рейтинг: 0 / 0
06.04.2004, 14:02
    #32470559
Max K
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавление записи в две таблицы одновременно
дело в том, что этот момент мне не поймать... т.е. при отладке вручную все работает, но при работе программы в течении дня данная ситуация может повториться несколько раз... недостающие записи я потм конечно ловлю, но ПОЧЕМУ это происходит??
...
Рейтинг: 0 / 0
06.04.2004, 14:04
    #32470565
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавление записи в две таблицы одновременно
Ни запросов, ни как они вызываются, ни версии (mdb/adp)...
Что-то не работает, а что - хрен его знает... И ведь в самом деле - хрен его знает! Если что-то не работает - надо что-то как-то починить.
Телепяты, вперед!

Гюльчатай, открой личико, а?
Max K, ты хоть способ запуска запросов покажи?
...
Рейтинг: 0 / 0
06.04.2004, 14:05
    #32470568
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавление записи в две таблицы одновременно
Ну тогда можно заняться писанием лога. И тогда в конце дня можно будет что-то отследить по нему.
...
Рейтинг: 0 / 0
06.04.2004, 14:22
    #32470595
4d_monster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавление записи в две таблицы одновременно
У меня тоже возникает подобная проблемма:

в mdb есть две слинкованные из другого mdb(на другом компьютере) таблицы.

есть запросы, которые добавляют данные в эти таблицы, запросы запускаются из модуля CurrentDB.Execute , в одну таблицу данные добавляются, в другую нет.
Причём если вручную дебагерить ВСЁ ок.
При правильном использовании (by Users) ПЕРЕОДИЧЕСКИ тоже всё ок.
...
Рейтинг: 0 / 0
06.04.2004, 14:27
    #32470613
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавление записи в две таблицы одновременно
Ну так тот же совет.
...
Рейтинг: 0 / 0
06.04.2004, 14:32
    #32470631
Max K
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавление записи в две таблицы одновременно
Лох Позорный

не писал подробностей, потому что и писать-то нечего, все вроде понятно

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
With CurrentDb.CreateQueryDef("")
    If Me.NewRecord Then
       ' Заносим в таблицу1
       .SQL ="INSERT INTO таблица1 ... SELECT ..."
       .Execute
       '  Заносим в таблицу2
       .SQL = Me.Tag ' здесь запрос такой же
       .Execute
    End If
End With


запросы из клиентских mdb
таблицы1,2 - связанные с серверной mdb
MS Access 2002
...
Рейтинг: 0 / 0
06.04.2004, 14:49
    #32470674
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавление записи в две таблицы одновременно
ню-ню... понятно ему все...
как задницей чувстсвовал

.Execute dbFailOnError

RTFM
...
Рейтинг: 0 / 0
06.04.2004, 14:56
    #32470690
Max K
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавление записи в две таблицы одновременно
Лох Позорный

пожалуйста не надо ртфм-ов...
dbFailOnError было убрано ради эксперимента, потому как с ним таже фигня...
и потом писал же, что используется begintrans, так что по любому при ошибке полный откат должен быть.
...
Рейтинг: 0 / 0
06.04.2004, 15:01
    #32470700
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавление записи в две таблицы одновременно
ну и с какой радости у тебя откат случится, а? сам по себе произойдет? типа ошибки никакой нет (т.е. она есть, но молча глотается без dbFailOnError), а транзакция раз - и откатилась, да?

все таки RTFM, батенька, RTFM
и чем чаще, тем лучше

Ф1В рабочей области ядра Microsoft Jet при правильном синтаксисе инструкции SQL и подходящих разрешениях метод Execute никогда не приводит к ошибке — даже если не удается изменить или удалить ни одну из записей. Поэтому всегда следует использовать параметр dbFailOnError при запуске с помощью метода Execute запроса на обновление или удаление записей.
...
Рейтинг: 0 / 0
06.04.2004, 15:57
    #32470856
Max K
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавление записи в две таблицы одновременно
да вобщем не в dbFailOnError дело... раньше с ним запросы выполнялись, но ни разу access в обработчик не сваливался
...
Рейтинг: 0 / 0
06.04.2004, 16:04
    #32470874
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавление записи в две таблицы одновременно
ну значит или обработчик неправильный, или запрос действительно ничего не делает и не выдает ошибок.
...
Рейтинг: 0 / 0
06.04.2004, 16:14
    #32470900
Max K
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавление записи в две таблицы одновременно
ладно, всем спасибо, буду дальше мучиться ;)
...
Рейтинг: 0 / 0
06.04.2004, 16:23
    #32470925
фыыф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавление записи в две таблицы одновременно
Усе может зависеть от того, как расставлены переходы на обработчик. В частности можно придумать случай, когда SQL во второй раз не изменится.
Утрируя (вряд ли в действительности все так плохо):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Public Function TestQDF()
On Error Resume Next
DBEngine.BeginTrans
Me.Tag =  "Фигняс и ошибочки" 
    With CurrentDb.CreateQueryDef( "")    
        If True Then
           ' Заносим в таблицу1
           .sql = "INSERT INTO tests Values(1,1,1)"
           .Execute dbFailOnError
           '  Заносим в таблицу2
           .sql = Me.Tag ' здесь запрос такой же
           Debug.Print Err.Description
           Err.Clear
           .Execute dbFailOnError
        End If
    End With
If Err <> 0  Then
    DBEngine.Rollback
    Debug.Print "Rollback "
Else
    DBEngine.CommitTrans
    Debug.Print " Committed"
End If
End Function


?form_testqdfform.TestQDF()
Ошибочная инструкция SQL; предполагалось 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT' или 'UPDATE'.
Committed

- т.е. при исполнении запросов ошибок нет. А есть при присвоении SQL. SQL остается от первого запроса.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / добавление записи в две таблицы одновременно / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]