Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.14;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.018 c
14-44360
Дмитрий К.К.
2003-03-31 07:00
2003.04.14
Именинники 31 марта


7-44483
Alexandr3
2003-02-12 01:07
2003.04.14
По поводу печати


6-44295
D
2003-02-20 16:14
2003.04.14
Сокеты через WinAPI


1-44159
Zarba
2003-04-03 16:45
2003.04.14
Копирование файлов Stealths ом


3-44053
RDA
2003-03-24 14:09
2003.04.14
Ищу замену ADO