|
DBGrid Уффффф
|
|||
---|---|---|---|
#18+
Товарищи выручайте! У меня DBGRid с которым должно работать много пользователей. Ну те база на SQL 2000 и юзера из моей проги её юзают. Так вот, если один отредактировал строку, то другой юзер пока не обновит DBGrid не сможет эту запись редактировать, т.е. сможет, но выскочит ошибка, что DBGrid не может найти запись . В итоге надо обновлять именно одну строку, как только на неё попадает курсор, потому что обновлять все записи это плохо :), вдруг их будет 10000 . Заранее благодарен... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2003, 15:44 |
|
DBGrid Уффффф
|
|||
---|---|---|---|
#18+
это не проблема grid'a это проблема в том, как ты создаешь recordset'ы для отображения и редактирования пользователями. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2003, 17:49 |
|
DBGrid Уффффф
|
|||
---|---|---|---|
#18+
Вот пример создания моего recordset'а: В модуле есть процедура: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
А вот к ней обращение, ну грубо говоря загрузка в DBGrid: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Подскажите пожалуйста, что не так :( ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2003, 18:24 |
|
DBGrid Уффффф
|
|||
---|---|---|---|
#18+
НУ кто-нибудь................................ :(```` ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2003, 19:42 |
|
DBGrid Уффффф
|
|||
---|---|---|---|
#18+
вот еще тонкость: 1-ый пользователь меняет запись, второй пользователь меняет эту же запись и нажимает ENTER, я отлавливаю нажатие и делаю DBGrid.DataChanged = True для того чтоьы данные ушли в базу. Он ругается, что дынные были изменены. Тогда я подумал надо обновить сам rs. Написал: rs.Requery ' Update тоже пробывал DBGrid.DataChanged = True Но ошибка таже :( ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2003, 10:03 |
|
DBGrid Уффффф
|
|||
---|---|---|---|
#18+
А тебе надо чтоб Все изменения сразу уходили на всех клиентов? И какая логика по изменению строки? те Что надо делать если одну строку отредактировали двое? сохранить изменения первого юзера и не применять изменения второго юзера или записать изменения первого и на них наложить изменения второго? И ихмно - применять грид для отображения тех записей которые могит одновременно редактировать несколько пользователей не стоит особ на прямом (не отсоединенном )рекодсете. К стати не у тебя первого возникла такая проблема - все начинающие с ней сталкиваются :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2003, 11:12 |
|
DBGrid Уффффф
|
|||
---|---|---|---|
#18+
Мне надо чтоб , кто последний ввеёл данные, те данные и передались в базу. Но дело в том, что при добавлении в (отредактируюмую запись другим юзером)идёт ошибка Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2003, 11:27 |
|
DBGrid Уффффф
|
|||
---|---|---|---|
#18+
Ёще вопрос,а что применять если не грид ? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2003, 11:36 |
|
DBGrid Уффффф
|
|||
---|---|---|---|
#18+
тогда делаешь источник отсоединенным - при апдейте подсоелиняешь и обновляешь - потом снова отсоединяешь. Или вообше делаешь так что запись находиться на редактирование только у одного клиента. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2003, 13:09 |
|
DBGrid Уффффф
|
|||
---|---|---|---|
#18+
На сегодня усё - началось празднование ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2003, 13:09 |
|
DBGrid Уффффф
|
|||
---|---|---|---|
#18+
Спасибо DAO что хоть ты отзываешсья на мои крики о помощи. Только вот надо не отсоединнёным соединением, а так сказать онлайн. Ведь должен быть какой-то выход. Я уверен, что многие писали проги для БД и основная задача таких прог это многопользовательский режим работы с данными. И опять же я уверен, что для отображения они использовали какой-нить GRid, конкретно в моей ситуации DBGrid. Люди если у вас есть хоть капля сожеления, поомоогитеее!!! Я уже спать перестал и ем редко :). Помогите прошу!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2003, 13:50 |
|
DBGrid Уффффф
|
|||
---|---|---|---|
#18+
Ну хоть кто-нить подскажите......... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.03.2003, 08:39 |
|
DBGrid Уффффф
|
|||
---|---|---|---|
#18+
Брось ты DataGrid к чертям (и судя по твоим постам, ты это сделаешь очень скоро) Используй ListView на необновляемым с ForwardOnly типом рекордсетом, а данные редактируй в отдельной формочке. Имхо, так будет лучше (все только смотрят - захотел ввести/отредактировать, пожалуйста, но только 1 запись) Хотя это сугубо мое мнение по поводу организации работы пользователей в сети. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.03.2003, 09:43 |
|
DBGrid Уффффф
|
|||
---|---|---|---|
#18+
Всё конечно здорово и я бы брасил DBGrid, но если так всё бросать успехов в программировании не добьёшься. Это чисто моё мнение. Теперь по делу: Я изменил коннект и теперь при загрузке нельзя редактировать GRid. Честно говоря не знаю, что и делать и где копать. По этому прошу если кто знает из Монстров VB, то подскажите пожалуста. Вот новый коннект: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Да и по поводу 'adOpenDynamic', почему он ругается на: Код: plaintext 1.
Заранее благодарен..... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2003, 09:48 |
|
DBGrid Уффффф
|
|||
---|---|---|---|
#18+
Попробуй сделай так : по событию ADODataSet OnPostError напиши : Action := daAbort ; ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2003, 14:01 |
|
DBGrid Уффффф
|
|||
---|---|---|---|
#18+
Извиняй - это для Делфи так решается проблема. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2003, 14:07 |
|
DBGrid Уффффф
|
|||
---|---|---|---|
#18+
>Всё конечно здорово и я бы брасил DBGrid, но если так всё бросать успехов в программировании не добьёшься. Это чисто моё мнение. Точно. "Через терни - к зведам" Только этот путь времени займет долго... З.Ы. А что в переменной sql? Обновляем ли запрос сам по себе? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2003, 17:40 |
|
DBGrid Уффффф
|
|||
---|---|---|---|
#18+
Запрос обновляем. Только, я в полной растерянности и не знаю, что делать. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2003, 08:37 |
|
DBGrid Уффффф
|
|||
---|---|---|---|
#18+
Знакомая проблема. Не очень хорошо описана даже в MSDN'ке. Итак: для того, чтобы все юзеры в многопользовательской среде видели все изменения, которые были сделаны другими пользователями, необходимо, чтобы рекордсет с данными был открыт в adOpenKeyset (adOpenDynamic позволяет увидеть еще и добавленные записи - но это очень долго). Причем при этом необходимо, чтобы было CursorLocation=adUseSever (а для adUseClient можно только adOpenStatic - при этом ты не увидишь никаких чужих изменений). Это что касается теории. На практике у меня не получилось доьиться видимости чужих изменений на ODBC драйвере (это там где провайдер "msdasql"), получилось только на OLE DB провайдере (т.е. там где "sqloledb"). Причем при неспособности открыть нужный тебе курсор не будет выдаваться шибок - поэтому необходимо с этим бороться. Можно пробовать свойство Supports у рекордсета, но это не дает необходимой диагностики с типом курсора, поэтому я предлагаю просматривать динамические свойства у Connection - сразу видно много интересного, хотя описания этих свойств я не нашел (может просто плохо искал). Однако названия этих свойств достаточно прозрачны для понимания того, что они означают. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2003, 09:32 |
|
DBGrid Уффффф
|
|||
---|---|---|---|
#18+
2 Senin Viktor: Туплю, но как пользоваться ListView для отображения данных из базы? Не нашел ничего похожего на rowsource или datasource... Или я не тот компонент смотрю? Я так понял, что речь идет про стандартный компонент из MS Windows Common Controls... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2003, 18:04 |
|
|
start [/forum/topic.php?fid=60&msg=32118667&tid=2171359]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 166ms |
0 / 0 |