Форум: "Базы";
Текущий архив: 2003.04.14;
Скачать: [xml.tar.bz2];
ВнизSQL explorer. Обновление записей в таблицах.. Найти похожие ветки
← →
Staraya (2003-03-26 11:01) [0]Здравствуйте! После ввода данных на форме документа в приложении, данные должны записаться в указанную в тексте sql, созданную специално для этих данных таблицу. Когда я раворачиваю sql explorer, чтобы посмотреть записались они у меня в таблицу или нет,то обнаруживаю, что введенных данных там еще нет. Потом я закрываю sql explorer и через несколько минут открываю снова, после чего данные уже отображаются в таблице соответствующей базы. В чем может быть проблема? Я использую компонеты IB
← →
Соловьев (2003-03-26 11:05) [1]commit
← →
Staraya (2003-03-26 11:21) [2]> Соловьев
Я не совсем поняла где я должна укзать commit. В транзакции определить уровень изоляции read commited или в обработчике Button1Click я должна что-то написать? Если Вас не затруднит, объясните подробнее
← →
Соловьев (2003-03-26 11:24) [3]После Post сделать Transaction.CommitRetaining
Ну а SQL Exploerу сделать рефреш даной таблицы.
← →
Staraya (2003-03-26 11:40) [4]>Соловьев
Понятно, спасибо. Только у меня еще один вопрос возник. Почему когда я делаю свойство Active=true у компонента IBQuery, то вылетает такая ошибка: "arithmetic exception,numeric overflow,or string truncation.Cannot transliterate character between character sets". И данные в соответствующей dbgrid не отображаются, хотя они есть в этой таблице. Может Вы сталкивались с такой ошибкой в своей практике?
← →
Соловьев (2003-03-26 11:41) [5]при подключении указана кодировка?
← →
Staraya (2003-03-26 11:52) [6]> Соловьев
Дело в том, что я точно не знаю где нужно указывать кодировку. Я знаю только, что при создании самой базы данных(база.gdb) можно указать кодировку(win1251, например). А больше я не знаю. Вы имеете в виду, у компонента IBQuery при подключении где-то кодировку указывать?
← →
zacho (2003-03-26 11:53) [7]Это может быть не только из-за кодировки. А так же из-за "arithmetic exception,numeric overflow,or string truncation".
Так что приведи запрос и структуру данных
← →
Соловьев (2003-03-26 11:55) [8]IBDatabase.Params.Add("lc_ctype=WIN1251");
> Почему когда я делаю свойство Active=true у компонента IBQuery
Там нет вычисляемых полей?
← →
zacho (2003-03-26 12:10) [9]Еще небольшой советик :)
Выкинуть SQL Explorer и поставить что-нибудь специализированное для IB, например IB Expert http://www.ibexpert.com
Список инструментов администратора и разработчика БД см. на http://www.ibase.ru/d_tools.htm
← →
Staraya (2003-03-26 13:22) [10]> Соловьев
Вычисляемых полей нет. В таблице только два поля(nom varchar(3),name varchar(50))
← →
Staraya (2003-03-26 13:24) [11]> Соловьев
IBDatabase.Params.Add("lc_ctype=WIN1251");
Этот параметр у меня был указан.
← →
Sheriff (2003-03-26 13:42) [12]попытка записать строку в числовое поле
← →
Staraya (2003-03-26 13:49) [13]>Sheriff
В таблице, в которую пытаюсь записать данные всего два поля и оба строковые. Когда я делала тоже самое через BDE, у меня все получалось, как только я решила использовать IB так сразу появились проблемы. Может компонет IBTransaction я как-то не правильно использую?
← →
Соловьев (2003-03-26 13:55) [14]Так у тебя проблема когда ты записываешь или когда Active=true?
← →
Staraya (2003-03-26 13:58) [15]> Соловьев
Когда Active=true
← →
Соловьев (2003-03-26 14:04) [16]какой текст запроса в IBQuery?
← →
Staraya (2003-03-26 14:09) [17]> Соловьев
select * from ceha .Где ceha-это та самая таблица, в котором два поля. Я делаю Active=true, для того чтоб данные из этой таблицы отобразились в соответствующей dbgrid
← →
Соловьев (2003-03-26 14:15) [18]указана в IBQuery.Transaction транзакция?
Какие еще на форме компоненты?
← →
Sheriff (2003-03-26 14:16) [19]фантастики не бывает...
где-то существуют старые связи, пройтись по всем элементам и обновить...
← →
Staraya (2003-03-26 14:19) [20]>Соловьев
Да,IBQuery.Transaction указана(свойство read commited), также имеется IBDatabase и также Datasource
← →
Соловьев (2003-03-26 14:21) [21]SQL диалект какой?
Попробуй поновой все компоненты положить.
← →
zacho (2003-03-26 14:21) [22]Или в IBDatabase.Params все-же нет lc_ctype=win1251, или у полей nom и name charset не win1251
← →
Staraya (2003-03-26 14:29) [23]> Соловьев
SQL диалект 1-й. На 3-й не переделывается, пишет "sql dialect invalid"
← →
Staraya (2003-03-26 14:32) [24]> zacho
Как мне узнать, что у полей nom и name charset не win1251
← →
Соловьев (2003-03-26 14:33) [25]посмотри zacho © (26.03.03 14:21) он прав наверное, что ты при создании полей не указала кодировку.
← →
Соловьев (2003-03-26 14:34) [26]
> Как мне узнать, что у полей nom и name charset не win1251
SQL Exploer - оисание таблицы.
← →
Staraya (2003-03-26 14:34) [27]>Sheriff
И забыла самое главное, у меня сначала на всех формах в датамодуле были компоненты BDE, потом я их удаляла и на их место ставила компоненты IB, все связи я указала правильно, мне кажется...
← →
zacho (2003-03-26 14:39) [28]Посмотреть charset :)
Как в SQL Explorer - уже не помню. А, например, в IB Expert - элементарно :)
В общем, если создаешь базу указав DEFAULT CHARACTER SET - то у всех строковых полей по умолчанию будет именно этот charset. Еще charset можно указать непосредственно при создании таблицы (или добавлении поля в существующую)
В очередной :) раз кину ссылку - http://www.ibase.ru/devinfo/ibrusfaq.htm
почитай обязательно.
← →
Staraya (2003-03-26 14:53) [29]> zacho
Спасибо за ссылку, я уже ее добавила в избранное:)
Я удалила компонент IBQuery и по-новой создала, потом в свойствах полей таблицы в sql exlorere поменяла тип полей на другой и снова на varchar, сохранила изменения и теперь эта ошибка не появляется. Только вот теперь в сетке dbgrid отображаются только наименования полей таблицы, а сами данные из нее не отображаются и невозможно ее редактировать(в сетке). В чем может быть причина?
← →
Соловьев (2003-03-26 14:58) [30]
> невозможно ее редактировать(в сетке).
юзай IBDataSet
> из нее не отображаются
Active=true и привязать грид
← →
zacho (2003-03-26 14:59) [31]
> Staraya (26.03.03 14:53)
В таблице нет данных ?
← →
Staraya (2003-03-26 15:09) [32]> zacho
В таблице данные как раз есть, но в сетке не отображаются. Может нужно добавить для IBQuery статические поля? Хотя их смысл я не очень хорошо допонимаю, как впрочем и такое понятие как "объекты поля".
← →
Соловьев (2003-03-26 15:14) [33]грид привязан????
← →
Staraya (2003-03-26 15:23) [34]> Соловьев
Да, грид привязан(у него в свойстве DataSource стоит соответствующий DataModule2.DSCeh), а у DSCeh в dataset указан соответствующий IBQuery.
← →
Соловьев (2003-03-26 15:26) [35]значит нет данных или запрос не активен. другого не дано.
← →
Staraya (2003-03-26 15:41) [36]> Соловьев
:)На самом деле нет данных в таблице! Но они же там были. Интересно, почему они исчезли?
← →
zacho (2003-03-26 15:46) [37]
> Staraya (26.03.03 15:41)
Скажи спасибо SQL Explorer"у :-)
При изменении структуры таблицы, он тебе ее просто пересоздал.
Так что скачай IB Expert - и не будет таких проблем !
← →
Соловьев (2003-03-26 15:54) [38]будут другие :)))
← →
Staraya (2003-03-26 16:26) [39]Всем спасибо огромное за помощь!Уже скачала IB Expert2.5.0.22Personal Edition. Я именно то что нужно скачала или нет?
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.04.14;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.009 c