Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Возникает ошибка при правке значения в DataGrid, Проблема с DataGrid 
:(
    Опции темы
Voldemar2004
Дата 15.10.2005, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



НА форме DataGrid и Adodc. Связал с *.dbf. Свойства DataGrid на удаление, обновление, добавление новых значений = True. ConnectionString: DSN=DELO, CommandType = 2 - adCmdTable, RecordSource=DELO.

При по попытке изменить значение в ячейке происходит ошибка: Error occered while trying to update record. "Во время обновления записи произошла ошибка".
Добавлено @ 17:32
Хотя проблема уже описывалась на http://forum.vingrad.ru/index.php?showtopi...d=1&hl=datagrid но ответа там нет. smile


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Kergan
Дата 15.10.2005, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.8.2005

Репутация: 3
Всего: 5



Можешь попробовать найти TDBgrid - контрол такой, типа DataGrid, но КУДА лучше и стабильнее. Я с ним работаю, никаких проблем, все корректно, в т.ч. проверка правильности введнных данных и прочие мелочи. Скачать его едва ли можно, он довольно большой, с разными библиоеками, а вот у добрых людей с дисками за 70р...
--------------------
Была у меня дурацкая подпись...Я ее убрал, а новую еще не придумал. :(
PM MAIL ICQ   Вверх
Voldemar2004
Дата 15.10.2005, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Цитата(Kergan @ 15.10.2005, 17:52)
Скачать его едва ли можно, он довольно большой,
не проблема у меня скорость загрузки ~ 120 Мб/час. Так ведь он от Borland smile . У меня есть дистрибутивы Delfi и C++ Builder - оттуда вытащить можно? smile


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Kergan
Дата 15.10.2005, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.8.2005

Репутация: 3
Всего: 5



Не знаю, где ты откопал чисто дельфийскую версию, но TDBgrid - это нормальный ActiveX, спокойно работающий в Basic'e... соберу либы, попробую отправить.
--------------------
Была у меня дурацкая подпись...Я ее убрал, а новую еще не придумал. :(
PM MAIL ICQ   Вверх
Voldemar2004
Дата 15.10.2005, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Цитата(Kergan @ 15.10.2005, 19:23)
спокойно работающий в Basic'e... соберу либы, попробую отправить.
На почтовый ящик ? smile Попробую сам поковыряться smile . Какую этот объект требует dll-ку или библиотеку?


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Guest
Дата 15.10.2005, 21:36 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











kergan и мне кань нб [email protected]
  Вверх
Voldemar2004
Дата 16.10.2005, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Цитата(Guest @ 15.10.2005, 21:36)
kergan и мне кань нб [email protected]
В книге по VB нашел, что можно использовать стандартный DBGrid, входивший в состав VB5, он находится сейчас в папке \tools. Но так у меня еще и C++ Builder, то из папки WINNT\System32 берем файл DBGRID32.OCX и добавлем его в проект. Все работает. smile


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Kergan
Дата 16.10.2005, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.8.2005

Репутация: 3
Всего: 5



А-а-а, поздравлю. Вот только проблемы еще будут с переносимостью, по себе знаю. Контрол кинул. Нужен или нет - решай сам.
--------------------
Была у меня дурацкая подпись...Я ее убрал, а новую еще не придумал. :(
PM MAIL ICQ   Вверх
Voldemar2004
Дата 16.10.2005, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



И еще вопрос: как сделать так, чтобы юзер правил ячейки, как ему вздумается, но в БД в это время ничего не изменялось, потом он нажмет кнопку "Сохранить изменения" - ну и все изменения вступают в силу smile .


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Kergan
Дата 16.10.2005, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.8.2005

Репутация: 3
Всего: 5



Сделай через вторую таблицу. Потом их перекопируешь. Пример:
юзер меняет Таблицу_Рабочую
юзер кликает СОХРАНИТЬ
Из Таблицы_Рабочей копируем в Таблицу_Куда_Желаем_Сохранить
Разумеется обе таблицы должны иметь одинаковую структуру.
ЗЫ если мне память не изменяет, встроенных накопителей, чтобы организовать вышеуказанный алгоритм, нет в DBGrid (и в TDBGrid тоже). Но это не так уж и сложно.
--------------------
Была у меня дурацкая подпись...Я ее убрал, а новую еще не придумал. :(
PM MAIL ICQ   Вверх
Voldemar2004
Дата 16.10.2005, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Цитата(Kergan @ 16.10.2005, 16:56)
Сделай через вторую таблицу. Потом их перекопируешь. Пример:
юзер меняет Таблицу_Рабочую
юзер кликает СОХРАНИТЬ
Из Таблицы_Рабочей копируем в Таблицу_Куда_Желаем_Сохранить
Но тогда юзеры будут работать с реальным файлом БД. Я так прикинул, просто напишу код, который создает резервную копию БД - просто добавляет к имени файла что-то типа db_backup.dbf. И путь юзвери творят что хотят всегда же ведь смогу восстановить. smile


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Kergan
Дата 17.10.2005, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.8.2005

Репутация: 3
Всего: 5



Ну да. В моем способе примерно то же - только резервной является не вся база, а таблица.
А, кстати, какой будет Точка Восстанавления? Исходная пустая структура или последнее нажатие на кнопу "применить"?
--------------------
Была у меня дурацкая подпись...Я ее убрал, а новую еще не придумал. :(
PM MAIL ICQ   Вверх
Voldemar2004
Дата 18.10.2005, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Цитата(Kergan @ 17.10.2005, 17:18)
А, кстати, какой будет Точка Восстанавления? Исходная пустая структура или последнее нажатие на кнопу "применить"?
Нет, это слишком круто для юзеров будет. В БД > 200 полей и 30 000 (!) строк, т.е общее число = 200*30 000 (!!) замучаюсь это отслеживать. Просто сделаю копию на момент открытия БД и все. А они пусть сами потом мучаются, если удалят что-то не то smile .



--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Voldemar2004
Дата 18.10.2005, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



У меня еще проблема с этим True DBGrid'ом: в других Гридах при щелчке мышой сразу появляется номер выбранного столбца, как сделать так, чтобы юзер щелкал по заголовку столбца и сразу показывался номер столбца, а не со второго раза.

В общем работает, только шифт надо держать:
Код

Private Sub TDBGrid1_KeyDown(KeyCode As Integer, Shift As Integer)
MsgBox "Номер выбранного столбца = " & Val(TDBGrid1.Col) & " счет идет от 0 "
End Sub



--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Kergan
Дата 18.10.2005, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.8.2005

Репутация: 3
Всего: 5



Там индекс выдается в событиях BeforeColUpdate и AfterColUpdate. В принципе перейти от события клика к этим событиям (их назначение, думаю, понятно) не сложно. ИМХО они удобнее кликов.
--------------------
Была у меня дурацкая подпись...Я ее убрал, а новую еще не придумал. :(
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.2005 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.