VB.Net.DataSet: Вопрос по связанным таблицам и обновлению да
От: bulkoed  
Дата: 06.08.04 08:36
Оценка:
Приветствую Всех.

Ситуация такая:

Есть DataSet в котором три тыблицы из БД (MS Access). Эти таблицы объединены по ключам с включенными Update, Delete, Accept/Reject в Cascade.
Есть форма на которой 3 DataGrid, каждый отображает одну из таблиц и позволяет редактирование и вставку записей.
Все синхронизируеться нормально, тоесть если в главной таблице выбираю запись в другом гриде показываються подчиненные записи.
Сохранение изменений производиться по кнопке код такой:

        Try
                adpClients.Update(dsClientsTechnics)

                adpTechnics.Update(dsClientsTechnics)

                adpHronology.Update(dsClientsTechnics)

                dsClientsTechnics.AcceptChanges()

          Catch DBErr As Exception

                 MessageBox.Show(DBErr.Message, "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1)

          End Try


Так вот, если я в главной таблице добавляю запись, затем сразу добавляю запись в подчиненной таблице относящуюся к только что созданной в главной — то при сохранении запись в подчиненной таблице не сохраняеться. После перезапуска приложения ее нет.
Подскажите пожалуйста, как правильно реализовать сохранение подчиненных записй?

С уважением,
Денис.
Posted via RSDN NNTP Server 1.9 beta
С уважением,
Денис.
Re: VB.Net.DataSet: Вопрос по связанным таблицам и обновлени
От: Peter Fleischer Германия www.informtoools.de
Дата: 06.08.04 08:49
Оценка: 32 (1)
bulkoed wrote:
...
> Есть DataSet в котором три тыблицы из БД (MS Access). Эти таблицы
> объединены по ключам с включенными Update, Delete, Accept/Reject
> в Cascade. Есть форма на которой 3 DataGrid, каждый отображает
> одну из таблиц и позволяет редактирование и вставку записей. Все
> синхронизируеться нормально, тоесть если в главной таблице выбираю
> запись в другом гриде показываються подчиненные записи. Сохранение
> изменений производиться по кнопке код такой:
...
> Так вот, если я в главной таблице добавляю запись, затем сразу
> добавляю запись в подчиненной таблице относящуюся к только что
> созданной в главной — то при сохранении запись в подчиненной таблице
> не сохраняеться. После перезапуска приложения ее нет. Подскажите
> пожалуйста, как правильно реализовать сохранение подчиненных записй?

Денис,
это так просто не работает, т.к. надо сначало обработать все новые записи от отца до внука, потом записи с изменеиями от отца до внука и в последную очередь удаленные записи от внука до отца.

Напр.:

Tab1
-> Tab2
-> Tab3

    Dim cb1 As New OleDbCommandBuilder(dadp1)
    Dim cb2 As New OleDbCommandBuilder(dadp2)
    Dim cb3 As New OleDbCommandBuilder(dadp3)

    Me.BindingContext(dset, "Tab1").EndCurrentEdit()
    Me.BindingContext(dset, "Tab2").EndCurrentEdit()
    Me.BindingContext(dset, "Tab3").EndCurrentEdit()

    Dim myDataRowArray() As DataRow
    Try
      ' New Row's

      myDataRowArray = dset.Tables("Tab1").Select(Nothing, Nothing, DataViewRowState.Added)
      dadp1.Update(myDataRowArray)
      myDataRowArray = dset.Tables("Tab2").Select(Nothing, Nothing, DataViewRowState.Added)
      dadp2.Update(myDataRowArray)
      myDataRowArray = dset.Tables("Tab3").Select(Nothing, Nothing, DataViewRowState.Added)
      dadp3.Update(myDataRowArray)

      ' Updated Row's

      myDataRowArray = dset.Tables("Tab1").Select(Nothing, Nothing, DataViewRowState.ModifiedCurrent)
      dadp1.Update(myDataRowArray)
      myDataRowArray = dset.Tables("Tab2").Select(Nothing, Nothing, DataViewRowState.ModifiedCurrent)
      dadp2.Update(myDataRowArray)
      myDataRowArray = dset.Tables("Tab3").Select(Nothing, Nothing, DataViewRowState.ModifiedCurrent)
      dadp3.Update(myDataRowArray)

      ' Deleted Row's

      myDataRowArray = dset.Tables("Tab3").Select(Nothing, Nothing, DataViewRowState.Deleted)
      dadp3.Update(myDataRowArray)
      myDataRowArray = dset.Tables("Tab2").Select(Nothing, Nothing, DataViewRowState.Deleted)
      dadp2.Update(myDataRowArray)
      myDataRowArray = dset.Tables("Tab1").Select(Nothing, Nothing, DataViewRowState.Deleted)
      dadp1.Update(myDataRowArray)

    Catch ex As Exception
      MessageBox.Show(ex.Message)
    End Try


Peter
Posted via RSDN NNTP Server 1.8
Re[2]: VB.Net.DataSet: Вопрос по связанным таблицам и обновл
От: bulkoed  
Дата: 06.08.04 08:55
Оценка:
Приветствую Вас.

> Денис,

> это так просто не работает, т.к. надо сначало обработать все новые записи от отца до внука, потом записи с изменеиями от отца до внука и в последную очередь удаленные записи от внука до отца.
>
> Напр.:
>

А куда же мне вставлять этот код если я работаю только через DataGrid'ы и визуально создавал OleDBDataAdapter'ы?

С уважением,
Денис.
Posted via RSDN NNTP Server 1.9 beta
С уважением,
Денис.
Re[3]: VB.Net.DataSet: Вопрос по связанным таблицам и обновл
От: Peter Fleischer Германия www.informtoools.de
Дата: 06.08.04 09:19
Оценка:
bulkoed wrote:
> Приветствую Вас.
>
>> Денис,
>> это так просто не работает, т.к. надо сначало обработать все новые
>> записи от отца до внука, потом записи с изменеиями от отца до внука
>> и в последную очередь удаленные записи от внука до отца.
>>
>> Напр.:
>>
>
> А куда же мне вставлять этот код если я работаю только через
> DataGrid'ы и визуально создавал OleDBDataAdapter'ы?

Денис,
ставь в тот код, который ты визуально создал, а именно в то место, где обрабатывается событие по сохранению всех данных.

Peter
Posted via RSDN NNTP Server 1.8
Re[4]: VB.Net.DataSet: Вопрос по связанным таблицам и обновл
От: bulkoed  
Дата: 06.08.04 09:34
Оценка:
Приветствую Вас.

"Peter Fleischer" <28181@news.rsdn.ru> сообщил/сообщила в новостях следующее: news:752287@news.rsdn.ru...
> bulkoed wrote:
> > Приветствую Вас.
> >
> >> Денис,
> >> это так просто не работает, т.к. надо сначало обработать все новые
> >> записи от отца до внука, потом записи с изменеиями от отца до внука
> >> и в последную очередь удаленные записи от внука до отца.
> >>
> >> Напр.:
> >>
> >
> > А куда же мне вставлять этот код если я работаю только через
> > DataGrid'ы и визуально создавал OleDBDataAdapter'ы?
>
> Денис,
> ставь в тот код, который ты визуально создал, а именно в то место, где обрабатывается событие по сохранению всех данных.

Ага, а уже после этого нужно делать созранение? Я верно понял? И еще там были строки:

    Dim cb1 As New OleDbCommandBuilder(dadp1)
    Dim cb2 As New OleDbCommandBuilder(dadp2)
    Dim cb3 As New OleDbCommandBuilder(dadp3)


Они к чему?
И еще myDataRowArray как относиться к моей БД? Или нужно после всего что-то именно с ней делать? Если так то что? Приведите примерчик пожалуйста.
Заранее премного благодарен!

С уважением,
Денис.
Posted via RSDN NNTP Server 1.9 beta
С уважением,
Денис.
Re[5]: VB.Net.DataSet: Вопрос по связанным таблицам и обновл
От: Peter Fleischer Германия www.informtoools.de
Дата: 06.08.04 10:14
Оценка:
bulkoed wrote:
...
> Ага, а уже после этого нужно делать созранение? Я верно понял? И
> еще там были строки:
>
>
>     Dim cb1 As New OleDbCommandBuilder(dadp1)
>     Dim cb2 As New OleDbCommandBuilder(dadp2)
>     Dim cb3 As New OleDbCommandBuilder(dadp3)
>

>
> Они к чему?

Ими можно пользоваться для создания CommandText для Command Objects для адаптера (InsertCommand, DeleteCommand и UpdateCommand).

> И еще myDataRowArray как относиться к моей БД?


Никак, просто в них содбпраютя все записи для Update.

> Или нужно после

> всего что-то именно с ней делать? Если так то что? Приведите
> примерчик пожалуйста. ...

Я же привел пример. Этот код ставишь в код события для храниения данных, напр. буттон "Запсиь".

Peter
Posted via RSDN NNTP Server 1.8
Re[6]: VB.Net.DataSet: Вопрос по связанным таблицам и обновл
От: bulkoed  
Дата: 06.08.04 11:12
Оценка:
Приветствую Вас.

"Peter Fleischer" <28181@news.rsdn.ru> сообщил/сообщила в новостях следующее: news:752425@news.rsdn.ru...
> bulkoed wrote:
> ...

> > Или нужно после

> > всего что-то именно с ней делать? Если так то что? Приведите
> > примерчик пожалуйста. ...
>
> Я же привел пример. Этот код ставишь в код события для храниения данных, напр. буттон "Запсиь".

Ага, тоесть я так понял мой код будет примерно таким:

Dim myDataRowArray() As DataRow

Try

' Новые записи

myDataRowArray = dsClientsTechnics.Tables("Clients").Select(Nothing, Nothing, DataViewRowState.Added)

adpClients.Update(myDataRowArray)

myDataRowArray = dsClientsTechnics.Tables("Technics").Select(Nothing, Nothing, DataViewRowState.Added)

adpTechnics.Update(myDataRowArray)

myDataRowArray = dsClientsTechnics.Tables("Hronology").Select(Nothing, Nothing, DataViewRowState.Added)

adpHronology.Update(myDataRowArray)

' Обновленные записи

myDataRowArray = dsClientsTechnics.Tables("Clients").Select(Nothing, Nothing, DataViewRowState.ModifiedCurrent)

adpClients.Update(myDataRowArray)

myDataRowArray = dsClientsTechnics.Tables("Technics").Select(Nothing, Nothing, DataViewRowState.ModifiedCurrent)

adpTechnics.Update(myDataRowArray)

myDataRowArray = dsClientsTechnics.Tables("Hronology").Select(Nothing, Nothing, DataViewRowState.ModifiedCurrent)

adpHronology.Update(myDataRowArray)

' Удаленные записи

myDataRowArray = dsClientsTechnics.Tables("Clients").Select(Nothing, Nothing, DataViewRowState.Deleted)

adpClients.Update(myDataRowArray)

myDataRowArray = dsClientsTechnics.Tables("Technics").Select(Nothing, Nothing, DataViewRowState.Deleted)

adpTechnics.Update(myDataRowArray)

myDataRowArray = dsClientsTechnics.Tables("Hronology").Select(Nothing, Nothing, DataViewRowState.Deleted)

adpHronology.Update(myDataRowArray)

Catch ex As Exception

MessageBox.Show(ex.Message)

End Try



Try

adpClients.Update(dsClientsTechnics)

adpTechnics.Update(dsClientsTechnics)

adpHronology.Update(dsClientsTechnics)

dsClientsTechnics.AcceptChanges()

Catch DBErr As Exception

MessageBox.Show(DBErr.Message, "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1)

End Try


Верно?
Posted via RSDN NNTP Server 1.9 beta
С уважением,
Денис.
Re[7]: VB.Net.DataSet: Вопрос по связанным таблицам и обновл
От: Peter Fleischer Германия www.informtoools.de
Дата: 06.08.04 11:44
Оценка:
bulkoed wrote:
...
> Верно?

Нет, причатай еще раз ответы.

Peter
Posted via RSDN NNTP Server 1.8
Re[8]: VB.Net.DataSet: Вопрос по связанным таблицам и обновл
От: bulkoed  
Дата: 06.08.04 12:54
Оценка:
Приветствую Вас.
"Peter Fleischer" <28181@news.rsdn.ru> сообщил/сообщила в новостях следующее: news:752697@news.rsdn.ru...
> bulkoed wrote:
> ...
> > Верно?
>
> Нет, причатай еще раз ответы.

Ну в общем все равно не работает. Тоесть работает но и так как раньше. При сохранении говорит что нужно наличие свзязанной записи в главной таблице.
Но ведь связь то есть, даже видно при добавлении подчиненной, что ее ключевое поле для связи приобретает номер ключа главной записи.
Черт, совсем запутался. Блин.

С уважением,
Денис.
Posted via RSDN NNTP Server 1.9 beta
С уважением,
Денис.
Re[9]: VB.Net.DataSet: Вопрос по связанным таблицам и обновл
От: Peter Fleischer Германия www.informtoools.de
Дата: 06.08.04 13:17
Оценка:
bulkoed wrote:
...
> Ну в общем все равно не работает.

Денис,
начнем еще раз:

Имеется структурная зависимость:

Tab1 = мастер
-> Tab2 = сын
-> Tab3 = внук

Update надо объязательно разделить. Иначе могут появлятся ошибки, когда напр. удаляется мастер-запись, к которой еще имеются сыновья и внуки!

' Новые записи:

мастер.Update -потом- сын.Update -потом- внук.Update

' Обновленные записи

мастер.Update -потом- сын.Update -потом- внук.Update

' Удаленные записи ! все наоборот!

внук.Update -потом- сын.Update -потом- мастер.Update

> Тоесть работает но и так как

> раньше. При сохранении говорит что нужно наличие свзязанной
> записи в главной таблице.

Эта ошибка может возникнуть, если добовляешь запись-сына и еще не добавлен запись мастера, т.е не выполнен вышеизложенную последовательность.

Peter
Posted via RSDN NNTP Server 1.8
Re[10]: VB.Net.DataSet: Вопрос по связанным таблицам и обнов
От: bulkoed  
Дата: 06.08.04 13:29
Оценка:
Приветствую Вас.

"Peter Fleischer" <28181@news.rsdn.ru> сообщил/сообщила в новостях следующее: news:752839@news.rsdn.ru...
> bulkoed wrote:
> ...
> > Ну в общем все равно не работает.
>
> Денис,
> начнем еще раз:
>
...
> Эта ошибка может возникнуть, если добовляешь запись-сына и еще не добавлен запись мастера, т.е не выполнен вышеизложенную последовательность.

Я делаю так. Добавляю запись в мастер, делаю сохранение, добавляю запись в сын, когда делаю сохранение — выдаеться мне то чо писал выше.
Вот код моей процедуры сохранения:

Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem2.Click

Dim myDataRowArray() As DataRow

Try

' Новые записи

myDataRowArray = dsClientsTechnics.Tables("Clients").Select(Nothing, Nothing, DataViewRowState.Added)

adpClients.Update(myDataRowArray)

myDataRowArray = dsClientsTechnics.Tables("Technics").Select(Nothing, Nothing, DataViewRowState.Added)

adpTechnics.Update(myDataRowArray)

myDataRowArray = dsClientsTechnics.Tables("Hronology").Select(Nothing, Nothing, DataViewRowState.Added)

adpHronology.Update(myDataRowArray)

' Обновленные записи

myDataRowArray = dsClientsTechnics.Tables("Clients").Select(Nothing, Nothing, DataViewRowState.ModifiedCurrent)

adpClients.Update(myDataRowArray)

myDataRowArray = dsClientsTechnics.Tables("Technics").Select(Nothing, Nothing, DataViewRowState.ModifiedCurrent)

adpTechnics.Update(myDataRowArray)

myDataRowArray = dsClientsTechnics.Tables("Hronology").Select(Nothing, Nothing, DataViewRowState.ModifiedCurrent)

adpHronology.Update(myDataRowArray)

' Удаленные записи

myDataRowArray = dsClientsTechnics.Tables("Clients").Select(Nothing, Nothing, DataViewRowState.Deleted)

adpClients.Update(myDataRowArray)

myDataRowArray = dsClientsTechnics.Tables("Technics").Select(Nothing, Nothing, DataViewRowState.Deleted)

adpTechnics.Update(myDataRowArray)

myDataRowArray = dsClientsTechnics.Tables("Hronology").Select(Nothing, Nothing, DataViewRowState.Deleted)

adpHronology.Update(myDataRowArray)

Catch ex As Exception

MessageBox.Show(ex.Message)

End Try

End Sub
Posted via RSDN NNTP Server 1.9 beta
С уважением,
Денис.
Re[11]: VB.Net.DataSet: Вопрос по связанным таблицам и обнов
От: Peter Fleischer Германия www.informtoools.de
Дата: 06.08.04 14:00
Оценка:
bulkoed wrote:
...
> ...
>> Эта ошибка может возникнуть, если добовляешь запись-сына и еще не
>> добавлен запись мастера, т.е не выполнен вышеизложенную
>> последовательность.
>
> Я делаю так. Добавляю запись в мастер, делаю сохранение, добавляю
> запись в сын, когда делаю сохранение — выдаеться мне то чо писал
> выше. Вот код моей процедуры сохранения:

А ты проверил, что на самом деле действительно так выполняется?

Какая таблица у тебя мастер, какая сын, какая внук?

Peter
Posted via RSDN NNTP Server 1.8
Re[12]: VB.Net.DataSet: Вопрос по связанным таблицам и обнов
От: bulkoed  
Дата: 06.08.04 14:12
Оценка:
Приветствую Вас.

"Peter Fleischer" <28181@news.rsdn.ru> сообщил/сообщила в новостях следующее: news:752904@news.rsdn.ru...
> bulkoed wrote:
> ...
> > ...
> >> Эта ошибка может возникнуть, если добовляешь запись-сына и еще не
> >> добавлен запись мастера, т.е не выполнен вышеизложенную
> >> последовательность.
> >
> > Я делаю так. Добавляю запись в мастер, делаю сохранение, добавляю
> > запись в сын, когда делаю сохранение — выдаеться мне то чо писал
> > выше. Вот код моей процедуры сохранения:
>
> А ты проверил, что на самом деле действительно так выполняется?
>
> Какая таблица у тебя мастер, какая сын, какая внук?

Мастер — Clients, ее сын Technics, сын Technics — Hronology.
Posted via RSDN NNTP Server 1.9 beta
С уважением,
Денис.
Re[13]: VB.Net.DataSet: Вопрос по связанным таблицам и обнов
От: Peter Fleischer Германия www.informtoools.de
Дата: 06.08.04 14:21
Оценка:
bulkoed wrote:
...
>> Какая таблица у тебя мастер, какая сын, какая внук?
>
> Мастер — Clients, ее сын Technics, сын Technics — Hronology.

Tогда объязательно надо менять последовательность удалкния записей!

Dim myDataRowArray() As DataRow

Try

' Новые записи

myDataRowArray = dsClientsTechnics.Tables("Clients").Select(Nothing, Nothing, DataViewRowState.Added)
adpClients.Update(myDataRowArray)

myDataRowArray = dsClientsTechnics.Tables("Technics").Select(Nothing, Nothing, DataViewRowState.Added)
adpTechnics.Update(myDataRowArray)

myDataRowArray = dsClientsTechnics.Tables("Hronology").Select(Nothing, Nothing, DataViewRowState.Added)
adpHronology.Update(myDataRowArray)

' Обновленные записи

myDataRowArray = dsClientsTechnics.Tables("Clients").Select(Nothing, Nothing, DataViewRowState.ModifiedCurrent)
adpClients.Update(myDataRowArray)

myDataRowArray = dsClientsTechnics.Tables("Technics").Select(Nothing, Nothing, DataViewRowState.ModifiedCurrent)
adpTechnics.Update(myDataRowArray)

myDataRowArray = dsClientsTechnics.Tables("Hronology").Select(Nothing, Nothing, DataViewRowState.ModifiedCurrent)
adpHronology.Update(myDataRowArray)

' Удаленные записи

myDataRowArray = dsClientsTechnics.Tables("Hronology").Select(Nothing, Nothing, DataViewRowState.Deleted)
adpHronology.Update(myDataRowArray)

myDataRowArray = dsClientsTechnics.Tables("Technics").Select(Nothing, Nothing, DataViewRowState.Deleted)
adpTechnics.Update(myDataRowArray)

myDataRowArray = dsClientsTechnics.Tables("Clients").Select(Nothing, Nothing, DataViewRowState.Deleted)
adpClients.Update(myDataRowArray)

Catch ex As Exception
  MessageBox.Show(ex.Message)
End Try


Как ты генерируешь ключи?

На какой строке какая ошибка выскакивает?

Peter
Posted via RSDN NNTP Server 1.8
Re[14]: VB.Net.DataSet: Вопрос по связанным таблицам и обнов
От: bulkoed  
Дата: 06.08.04 14:27
Оценка:
Приветствую Вас.

"Peter Fleischer" <28181@news.rsdn.ru> сообщил/сообщила в новостях следующее: news:752939@news.rsdn.ru...
> bulkoed wrote:
> ...
> >> Какая таблица у тебя мастер, какая сын, какая внук?
> >
> > Мастер — Clients, ее сын Technics, сын Technics — Hronology.
>

> Как ты генерируешь ключи?

Да вообщето я их не генерирую. Там поле AutoIncrement. Оно автоматом вырабатыветься.

> На какой строке какая ошибка выскакивает?


Ошибка вылетает не в VB среде, а ошибка провайдера данных OLE DB, просто пишет по русски то что я писал выше.

С уважением,
Денис.
Posted via RSDN NNTP Server 1.9 beta
С уважением,
Денис.
Re[15]: VB.Net.DataSet: Вопрос по связанным таблицам и обнов
От: Peter Fleischer Германия www.informtoools.de
Дата: 06.08.04 14:51
Оценка:
bulkoed wrote:
...
>> Как ты генерируешь ключи?
> Да вообщето я их не генерирую. Там поле AutoIncrement. Оно
> автоматом вырабатыветься.

Денис,
тогда может возникнуть следующая проблема. При создания новой мастер-записи в клиенте генерируется ключ. После Update в БД генерируется свой ключ, который может не совпадать с ключом в клиенте. При создания записи-сына значение мастер-ключа, который находится в клиенте, записывается для связи в запись сына. Когда выполняется Update сына может вылетать ошибка, потому-что не найдена соответствующая мастер-запись в следствии несовпадения ключей. При работе нескольких клиентов одновременно ситуацая может быть еще хуже.

Выход здесь один, который хорошо работает и в многоклиентской сфере.

1. В клиенте назначаются отрицательные ключи с отрицательным шагом.

2. После Update каждой записи сразу считывается назначенное сервером значение ключа и записывается в соответствующую запись.


>> На какой строке какая ошибка выскакивает?

>
> Ошибка вылетает не в VB среде, а ошибка провайдера данных OLE DB,
> просто пишет по русски то что я писал выше.

Убири временно tyr/catch или выполняай в шаговом режима или запомни номер строки при ошибке (ErrorStack).

Peter
Posted via RSDN NNTP Server 1.8
Re[16]: VB.Net.DataSet: Вопрос по связанным таблицам и обнов
От: bulkoed  
Дата: 06.08.04 15:05
Оценка:
Приветствую Вас.

"Peter Fleischer" <28181@news.rsdn.ru> сообщил/сообщила в новостях следующее: news:752988@news.rsdn.ru...
> bulkoed wrote:
> ...

> Убири временно tyr/catch или выполняай в шаговом режима или запомни номер строки при ошибке (ErrorStack).


Только что убрал try/catch блоки и вот что получилось:

1. Создаю запись в таблице Clients (мастер). Произвожу сейв.
2. Создаю запись в таблице Technics, подчиненную созданной записи из таблицы Clients. Произвожу сейв.
3. Создаю запись в таблице Hronology, подчиненную созданной записи из таблицы Technics. Произвожу сейв и получаю ошибку вот здесь:

' Новые записи

myDataRowArray = dsClientsTechnics.Tables("Clients").Select(Nothing, Nothing, DataViewRowState.Added)

adpClients.Update(myDataRowArray)

myDataRowArray = dsClientsTechnics.Tables("Technics").Select(Nothing, Nothing, DataViewRowState.Added)

adpTechnics.Update(myDataRowArray)

myDataRowArray = dsClientsTechnics.Tables("Hronology").Select(Nothing, Nothing, DataViewRowState.Added)

adpHronology.Update(myDataRowArray) REM Вот тут остановилось с ошибкой в System.Data.OleDb вроде


После рестарта: запись таблицы Clients и подчиненная ей запись таблицы Technics на своем месте, записи в Hronology естевственно нет
Чего посоветуете?

С уважением,
Денис.
Posted via RSDN NNTP Server 1.9 beta
С уважением,
Денис.
Re[17]: VB.Net.DataSet: Вопрос по связанным таблицам и обнов
От: Peter Fleischer Германия www.informtoools.de
Дата: 06.08.04 15:23
Оценка:
bulkoed wrote:
...
> adpHronology.Update(myDataRowArray) REM Вот тут остановилось с
> ошибкой в System.Data.OleDb вроде
>
> [/vb]
>
> После рестарта: запись таблицы Clients и подчиненная ей запись
> таблицы Technics на своем месте, записи в Hronology естевственно нет
> Чего посоветуете?

Денис,
а вот сейсач нужно еще раз точное описание ошибки. Для этого лучше всего использовать try/catch, порставить braekpoint и выводить ex.Message.

Мне кажется, что либо ключевое значение на записывается в запись "Hronology", либо в БД стоит неверное отношение.

Peter
Posted via RSDN NNTP Server 1.8
Re[18]: VB.Net.DataSet: Вопрос по связанным таблицам и обнов
От: bulkoed  
Дата: 06.08.04 15:52
Оценка:
"Peter Fleischer" <28181@news.rsdn.ru> сообщил/сообщила в новостях следующее: news:753017@news.rsdn.ru...
> bulkoed wrote:
> ...
> > adpHronology.Update(myDataRowArray) REM Вот тут остановилось с
> > ошибкой в System.Data.OleDb вроде
> >
> > [/vb]
> >
> > После рестарта: запись таблицы Clients и подчиненная ей запись
> > таблицы Technics на своем месте, записи в Hronology естевственно нет
> > Чего посоветуете?
>
> Денис,
> а вот сейсач нужно еще раз точное описание ошибки. Для этого лучше всего использовать try/catch, порставить braekpoint и выводить ex.Message.
>
> Мне кажется, что либо ключевое значение на записывается в запись "Hronology", либо в БД стоит неверное отношение.
>
> Peter

Только что проверил все, вклоючил в DataGrid отображение ключевых полей. Так вот Hronology при вставке получает нужное значение ключевого поля таблицы Technics, в схеме DataSet все реляции верны, такая же реляция как и между Clients/Technics и всеравно мне выдаеться:

"Для обеспечения целостности данных необходимо наличие связанной записи в таблице Technics". Вот блин, никак не могу понять почему. Ведь ничто не отличаеться от связки первых двух таблиц.

С уважением,
Денис.
Posted via RSDN NNTP Server 1.9 beta
С уважением,
Денис.
Re[19]: VB.Net.DataSet: Вопрос по связанным таблицам и обнов
От: Peter Fleischer Германия www.informtoools.de
Дата: 06.08.04 16:07
Оценка:
bulkoed wrote:
...
> Только что проверил все, вклоючил в DataGrid отображение ключевых
> полей. Так вот Hronology при вставке получает нужное значение
> ключевого поля таблицы Technics, в схеме DataSet все реляции верны,
> такая же реляция как и между Clients/Technics и всеравно мне
> выдаеться:
>
> "Для обеспечения целостности данных необходимо наличие связанной
> записи в таблице Technics". Вот блин, никак не могу понять почему.
> Ведь ничто не отличаеться от связки первых двух таблиц.

Денис,
эту ошибку выдает БД! Т.е., если в банке неверная связь (foreign contraint), то провайдер выдает ошибку, даже если в клиенте все верно. Это проверил?

Peter
Posted via RSDN NNTP Server 1.8
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.