Синхронизация записи и чтения из БД
От: Арташес Россия  
Дата: 07.11.05 08:35
Оценка:
Здраствуйте! ( Это мое первое сообщение в форуме )
У меня возникла такая проблема.
Когда я пищу в БД MS Access несколько строк (на vb.net Windows Application) и
потом после этого сразу пытаюсь читать только-что записанные строки,
у меня происходит то, что последняя или последние две строки не успевают запсаться и я получаю обратно не все строки!!!
Кто знает как можно решить эту проблему?

Да, кстати когда я ставлю
System.Threading.Thread.Sleep(3000)
перед тем как читать, то всет становится на свои места.

Заранее спасибо
Арташес
Синхронизация записи и чтения из БД
От: Аноним  
Дата: 07.11.05 10:17
Оценка:
Приведите код.
--
VBStreets, Editor-in-Chief
http://blogs.gotdotnet.ru/personal/gaidar/

If you don't know where you are going, any road will take you there...


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: Синхронизация записи и чтения из БД
От: vitaly_spb Россия  
Дата: 07.11.05 10:32
Оценка:
А>Да, кстати когда я ставлю
А>System.Threading.Thread.Sleep(3000)
А>перед тем как читать, то всет становится на свои места.

Имеет смысл использовать транзакции, чтобы не было dirty read.
...Ei incumbit probatio, qui dicit, non qui negat...
Re: Синхронизация записи и чтения из БД
От: Арташес Россия  
Дата: 07.11.05 13:16
Оценка:
Здравствуйте, gaidar, Вы писали:

G>Приведите код.


G>
данное сообщение получено с www.gotdotnet.ru

G>ссылка на оригинальное сообщение


For Each dr As DataRow In dbTable.Rows              
      strInsert = "INSERT INTO procedures ...... " 'естественно это не полная строка
      Dim AdapMain As New OleDbDataAdapter(strInsert, Conn)
      AdapMain.SelectCommand.ExecuteNonQuery()
Next


System.Threading.Thread.Sleep(3000) 'wait 3 seconds

Dim sDetail As New sessionDetail(sessionID) ' sessionDetail это форма которая отоброжает эти самые записи
sDetail.Show()


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

Арташес
Re[2]: Синхронизация записи и чтения из БД
От: Bigger Российская Империя  
Дата: 07.11.05 15:13
Оценка:
Здравствуйте, Арташес, Вы писали:

А>Здравствуйте, gaidar, Вы писали:


G>>Приведите код.


G>>
данное сообщение получено с www.gotdotnet.ru

G>>ссылка на оригинальное сообщение



Dim tran as OleDbTransaction
tran = Conn.BeginTransaction()
А>For Each dr As DataRow In dbTable.Rows              
А>      strInsert = "INSERT INTO procedures ...... " 'естественно это не полная строка
А>      Dim AdapMain As New OleDbDataAdapter(strInsert, Conn)
        AdapMain.SelectCommand.Transaction = tranА>      AdapMain.SelectCommand.ExecuteNonQuery()
А>Next
' Анализируем были ли ошибки и 
tran.Commit() ' ошибок не было
tran.Rollback() 'Ошибки случились
А>System.Threading.Thread.Sleep(3000) 'wait 3 seconds

А>Dim sDetail As New sessionDetail(sessionID) ' sessionDetail это форма которая отоброжает эти самые записи
А>sDetail.Show()


skip

Смотрим на выделенное

Программист — это шаман..., подарите бубен!
Re[3]: Синхронизация записи и чтения из БД
От: Арташес Россия  
Дата: 09.11.05 12:42
Оценка:
Здравствуйте, Bigger, Вы писали:

B>Здравствуйте, Арташес, Вы писали:


А>>Здравствуйте, gaidar, Вы писали:


G>>>Приведите код.


G>>>
данное сообщение получено с www.gotdotnet.ru

G>>>ссылка на оригинальное сообщение


B>

B>Dim tran as OleDbTransaction
B>tran = Conn.BeginTransaction()
А>>For Each dr As DataRow In dbTable.Rows              
А>>      strInsert = "INSERT INTO procedures ...... " 'естественно это не полная строка
А>>      Dim AdapMain As New OleDbDataAdapter(strInsert, Conn)
B>        AdapMain.SelectCommand.Transaction = tranА>      AdapMain.SelectCommand.ExecuteNonQuery()
А>>Next
B>' Анализируем были ли ошибки и 
B>tran.Commit() ' ошибок не было
B>tran.Rollback() 'Ошибки случились
А>>System.Threading.Thread.Sleep(3000) 'wait 3 seconds

А>>Dim sDetail As New sessionDetail(sessionID) ' sessionDetail это форма которая отоброжает эти самые записи
А>>sDetail.Show()


B>skip


B>Смотрим на выделенное


Спасибо за ответ!!!
Правда из за отсутствия времени я не успел его поткстировать но, принцип ясен (кажется )!

С уважением
Арташес
Re: Синхронизация записи и чтения из БД
От: eugen1001  
Дата: 10.11.05 14:31
Оценка:
Здравствуйте, Арташес, Вы писали:

А> Здраствуйте! ( Это мое первое сообщение в форуме )

А>У меня возникла такая проблема.
А>Когда я пищу в БД MS Access несколько строк (на vb.net Windows Application) и
А>потом после этого сразу пытаюсь читать только-что записанные строки,
А>у меня происходит то, что последняя или последние две строки не успевают запсаться и я получаю обратно не все строки!!!
А>Кто знает как можно решить эту проблему?

А>Да, кстати когда я ставлю

А>System.Threading.Thread.Sleep(3000)
А>перед тем как читать, то всет становится на свои места.

А>Заранее спасибо

А>Арташес

Старая фича Access. У него получается как бы отложенная запись. Никто не знает, когда данные физически лягут в БД.
Поэтому лучше в Access вообще отказаться от перечитывания только что записанных данных.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.