Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как обновить всего лишь одну запись вместо всего набора данных

37K
14 июля 2008 года
russian_style
13 / / 06.07.2008
использую TADOQuery (С++Builder). когда добавляю запись, значения по умолчанию и автоинкрементные поля не высвечиваются. Эти данные высвечиваются когда заново переоткрываю TADOQuery.
Не хотелось переоткрывать когда можно просто сделать так чтобы эти значения получались прямо во время редактирования или вставки.
1
14 июля 2008 года
kot_
7.3K / / 20.01.2000
Цитата: russian_style
использую TADOQuery (С++Builder). когда добавляю запись, значения по умолчанию и автоинкрементные поля не высвечиваются. Эти данные высвечиваются когда заново переоткрываю TADOQuery.
Не хотелось переоткрывать когда можно просто сделать так чтобы эти значения получались прямо во время редактирования или вставки.


На форуме наказывают за создание двух тем посвященных одному и тому же вопросу с единственной целью привлечь внимание. Вам помоему сказали ясно - что вам надо сделать - и никто не будет за вас читать справку и литературу.

332
14 июля 2008 года
Valiant
416 / / 27.09.2004
Правильно оформите сообщение!
Тема и содержание не соответствуют, разберитесь что Вы хотите.
Не поленитесь прочитайте правила постинга в раздел и воспользуйтесь поиском по форуму!
Вопрос уже обсуждался.
37K
14 июля 2008 года
russian_style
13 / / 06.07.2008
Ладно. Подробно так подробно. Не злитесь что написал в двух местах. Я подумал что вопрос всё таки про БД. Я не програмирую давно но сейчас мне надо автоматизировать своё рабочее место. Это единственная причина почему я здесь. Программирую вечерами после работы так что извините если не успеваю читать правила форума.

База у меня АССESS. Язык С++Builder. Соединяюсь через АДО.
Так как я много буду переделывать прогу. решил отделить логику от реализации. Я создаю классы имитирующие объекты хранящиеся в БД. для обращения к БД эти классы пользуются методами считывания и записи в БД. Что бы сделать более универсальный способ обращения к БД пользуюсь SQL. В случае замены БД на какую нибудь серверную POSTGRE или MySQL я буду менять только методы считывания и записи в БД.

Натыкаюсь на мелкие проблемы с немелкими решениями.
Представьте что ваш DATASET скачал данные с БД. теперь вы добавляете новую запись и запись успешно добавлена. В этой записи есть инкрементное поле и поле со значениями по умолчанию. Как вы догадались эти поля заполнились значениями на серверной стороне, но на вашем DATASETе эти изменения не отражены. В результате чего если вы попытаетесь изменить только что добавленную и сохраненую запись АДО будет ругаться что не найдена строка для изменения. в АДО РЕКОРДСЕТАХ есть динамические свойства Update Criteria и Update Resync они решили бы мою проблему. Но до них почемуто из С++ Builder не добраться. Я считал С++ Builder мощным языком и она ощутима но здесь чувствую слабину и никто не знает что можно сделать. Думаю с этим как я понял сталкивались не только я. Но вразумительных ответов без использования Обжект Паскаля нет. Думаю вам будет это интересно поковыряться. Я тоже ковыряюсь но пока return 0.
332
14 июля 2008 года
Valiant
416 / / 27.09.2004
Есть ли смысл проектировать своё приложение на заведомо более слабый движок БД?
Может заранее заложить избыточность, что бы потом было работы меньше?

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

Для Access существует Jet.

Ваша проблема с DataSet очевидна, Вы пытаетесь изменить запись которая в клиентском Dataset'е присутствует, а в серверном нет. Перед тем как изменять запись перешлите её в саму БД, а потом уже её изменяйте. Уйдите от Всех компонентов типа DB получайте все данные при помощи SQL запросов, обрабатывайте и отображайте при помощи самых простых элементов типа StringGrid и т.д.

Свойства которые Вы описали я не нашёл в декларации, но если там такое имеются и они протекченные Вам нужно создать предка и сделать эти свойства пабликами.
С++ мощный язык Builder мощная среда разработки просто нужно чётко знать что и как Вы будете делать!
Настоятельно рекомендую Вам книги по языку SQL и С++Builder6
37K
14 июля 2008 года
russian_style
13 / / 06.07.2008
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=413
Попробуйте сделать это на С++ Builder. Вы будете неприятно удивлены.
332
15 июля 2008 года
Valiant
416 / / 27.09.2004
Теперь я понял о чём Вы говорили. Только неактуально если использовать автоинкрементное поле как идентификатор. Ну собственно с ним и работаем.

Вообщем у Вас достаточно информации для реализации... дерзайте!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог