![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
SQL explorer. Обновление записей в таблицах.. [D7, IB6.x]
Staraya © (2003-03-26 11:01:00)Здравствуйте! После ввода данных на форме документа в приложении, данные должны записаться в указанную в тексте sql, созданную специално для этих данных таблицу. Когда я раворачиваю sql explorer, чтобы посмотреть записались они у меня в таблицу или нет,то обнаруживаю, что введенных данных там еще нет. Потом я закрываю sql explorer и через несколько минут открываю снова, после чего данные уже отображаются в таблице соответствующей базы. В чем может быть проблема? Я использую компонеты IB
Sheriff (2003-03-26 14:16:00) [21]фантастики не бывает...
где-то существуют старые связи, пройтись по всем элементам и обновить...
Соловьев (2003-03-26 14:15:00) [22]указана в IBQuery.Transaction транзакция?
Какие еще на форме компоненты?
Staraya (2003-03-26 14:09:00) [23]> Соловьев
select * from ceha .Где ceha-это та самая таблица, в котором два поля. Я делаю Active=true, для того чтоб данные из этой таблицы отобразились в соответствующей dbgrid
Соловьев (2003-03-26 14:04:00) [24]какой текст запроса в IBQuery?
Staraya (2003-03-26 13:58:00) [25]> Соловьев
Когда Active=true
Соловьев (2003-03-26 13:55:00) [26]Так у тебя проблема когда ты записываешь или когда Active=true?
Staraya (2003-03-26 13:49:00) [27]>Sheriff
В таблице, в которую пытаюсь записать данные всего два поля и оба строковые. Когда я делала тоже самое через BDE, у меня все получалось, как только я решила использовать IB так сразу появились проблемы. Может компонет IBTransaction я как-то не правильно использую?
Sheriff (2003-03-26 13:42:00) [28]попытка записать строку в числовое поле
Staraya (2003-03-26 13:24:00) [29]> Соловьев
IBDatabase.Params.Add("lc_ctype=WIN1251");
Этот параметр у меня был указан.
Staraya (2003-03-26 13:22:00) [30]> Соловьев
Вычисляемых полей нет. В таблице только два поля(nom varchar(3),name varchar(50))
zacho (2003-03-26 12:10:00) [31]Еще небольшой советик :)
Выкинуть SQL Explorer и поставить что-нибудь специализированное для IB, например IB Expert http://www.ibexpert.com
Список инструментов администратора и разработчика БД см. на http://www.ibase.ru/d_tools.htm
Соловьев (2003-03-26 11:55:00) [32]IBDatabase.Params.Add("lc_ctype=WIN1251");
> Почему когда я делаю свойство Active=true у компонента IBQuery
Там нет вычисляемых полей?
zacho (2003-03-26 11:53:00) [33]Это может быть не только из-за кодировки. А так же из-за "arithmetic exception,numeric overflow,or string truncation".
Так что приведи запрос и структуру данных
Staraya (2003-03-26 11:52:00) [34]> Соловьев
Дело в том, что я точно не знаю где нужно указывать кодировку. Я знаю только, что при создании самой базы данных(база.gdb) можно указать кодировку(win1251, например). А больше я не знаю. Вы имеете в виду, у компонента IBQuery при подключении где-то кодировку указывать?
Соловьев (2003-03-26 11:41:00) [35]при подключении указана кодировка?
Staraya (2003-03-26 11:40:00) [36]>Соловьев
Понятно, спасибо. Только у меня еще один вопрос возник. Почему когда я делаю свойство Active=true у компонента IBQuery, то вылетает такая ошибка: "arithmetic exception,numeric overflow,or string truncation.Cannot transliterate character between character sets". И данные в соответствующей dbgrid не отображаются, хотя они есть в этой таблице. Может Вы сталкивались с такой ошибкой в своей практике?
Соловьев (2003-03-26 11:24:00) [37]После Post сделать Transaction.CommitRetaining
Ну а SQL Exploerу сделать рефреш даной таблицы.
Staraya (2003-03-26 11:21:00) [38]> Соловьев
Я не совсем поняла где я должна укзать commit. В транзакции определить уровень изоляции read commited или в обработчике Button1Click я должна что-то написать? Если Вас не затруднит, объясните подробнее
Соловьев (2003-03-26 11:05:00) [39]commit