alex-v
|
|
« : 03 Март 2008, 17:32:03 » |
|
Добрый день!
Решил поработать с InterBase компонентами.
Создал таблицу с помощью компоненты TIBTable. А потом пытаюсь открыть эту таблицу компонентой TIBQuery (запрос к примеру "select * from table"), и она не открывается. Выдает ошибку "Table unknown".
Подскажите, кто знает, в чем дело? Как открыть таблицу с помощью TIBQuery?
|
|
|
Записан
|
|
|
|
Gloomy Fox
Гродненец
Репутация: +43/-0
Offline
Пол:
Сообщений: 296
to live is to die
|
Видимо ты чего-то недопонял. Схема обычно такая: TIBDatabase -> TIBTransaction -> (TIBDataSet / TIBTable / TIB...) -> TDataSource -> (TDBGrid / TDBEdit / TDB...) А то, что ты пытаешься сделать, как-то непостижимо...
|
|
|
Записан
|
|
|
|
alex-v
|
Да, я понимаю что схема такая. Согласен. Но вот почему компонент TIBQuery не видит таблицы, которые я создал с помощью компоненты TIBTable? Я пишу запрос для TIBQuery примерно такой "select * from qwe" (qwe - имя таблицы). И программа выдает ошибку "Table unknown".
|
|
|
Записан
|
|
|
|
Не факт...хотя...
|
Да, я понимаю что схема такая. Согласен. Но вот почему компонент TIBQuery [highlight]не видит таблицы, которые я создал с помощью компоненты TIBTable[/highlight]? Я пишу запрос для TIBQuery примерно такой "select * from qwe" (qwe - имя таблицы). И программа выдает ошибку "Table unknown". это как ?
|
|
|
Записан
|
|
|
|
alex-v
|
Я же писал: пишу запрос для TIBQuery: "select * from qwe1", где qwe1 - таблица созданная ранее компонентой TIBTable. И программа выдает ошибку "Table unknown".
|
|
|
Записан
|
|
|
|
maxposedon
|
Это значит что в базе нету таблицы qwe1, неужели не ясно? Возможно потому, что надо схема.таблица. (И при создании тоже)
|
|
« Последнее редактирование: 04 Март 2008, 14:18:03 от maxposedon »
|
Записан
|
|
|
|
alex-v
|
maxposedon, но таблица qwe1 создана реально. Даже данными её уже наполнил. Таблица есть!!! А что значит "схема.таблица"? Объясни пожалуйста.
|
|
|
Записан
|
|
|
|
AlexO
Гродненец
Репутация: +16/-1
Offline
Пол:
Сообщений: 232
Я люблю Гродненский форум!
|
А запущен ли в системе процесс ibserver.exe? И прописан ли путь к базе в компоненте IBDataBase?
|
|
|
Записан
|
|
|
|
alex-v
|
AlexO, я пользуюсь Firebird. Соответсвенно запущен процесс fbserver.exe. А ibserver.exe не запущен. В компоненте IBDataBase прописан путь: c:\BD\BD_FILE.GDB
|
|
|
Записан
|
|
|
|
alex-v
|
maxposedon, попробовал создать таблицу вида "zz.qwe1" и после этого компонент TIBQuery стал выдавать уже другую ошибку: Token unknown - line1, column 17
|
|
|
Записан
|
|
|
|
AlexO
Гродненец
Репутация: +16/-1
Offline
Пол:
Сообщений: 232
Я люблю Гродненский форум!
|
Да и вообще для создания таблиц БД под Interbase и Firebird есть отличная прога IBExpert. Кроме таблиц создает триггеры, генераторы, хранимые процедуры и прочее. Без нее, ИМХО, писать базу - извращение.
|
|
|
Записан
|
|
|
|
Paladin
|
|
|
« Последнее редактирование: 04 Март 2008, 15:30:17 от Paladin »
|
Записан
|
|
|
|
AlexO
Гродненец
Репутация: +16/-1
Offline
Пол:
Сообщений: 232
Я люблю Гродненский форум!
|
Меня осенило! Ха-Ха. Если в базе есть таблица, то компоненты IBTable и IBOuery только извлекают данные из этих таблиц и при помощи компонента DataSourse передают эти данные в компонент IBDataSet. А ты пишешь, что создал таблицу при помощи IBTable. Давненько не писал ничего на Delphi, но, если не подводит память в компоненте IBTable нужно указать имя таблицы и имя БД, затем Active поставить в true. Аналогичным образом работает IBQuery, разве что только выбирает данные при помощи SQL запроса. Не понятно как все-таки ты создал таблицу, если, действительно ее создал.
|
|
|
Записан
|
|
|
|
AlexO
Гродненец
Репутация: +16/-1
Offline
Пол:
Сообщений: 232
Я люблю Гродненский форум!
|
Юзайте IBExpert или аналоги, батенька!
|
|
|
Записан
|
|
|
|
alex-v
|
AlexO, таблица есть реально. Её даже видно в утилите ibconsole.exe. А для IBQuery я прописал свойство Database, прописал SQL запрос. Но увы, IBQuery не видит ранее созданную таблицу, программа выдает ошибку.
|
|
|
Записан
|
|
|
|
alex-v
|
AlexO, мне не нужен IBExpert . Мне нужно программными средствами создавать и открывать таблицы с помощью TIBTable м TIBQuery. TIBTable - работает прекрасно. А вот TIBQuery - выдает ошибку. В чем дело?
|
|
|
Записан
|
|
|
|
alex-v
|
Paladin, пробовал запрос "select * from zz.qwe1 ; " Все равно выдает программа ошибку.
|
|
|
Записан
|
|
|
|
AlexO
Гродненец
Репутация: +16/-1
Offline
Пол:
Сообщений: 232
Я люблю Гродненский форум!
|
Ну тогда еще одна мысль: установлено ли соединение компоненты IBQuery с БД? В принципе, если работает IBTable, то должен работать и IBQuery? А ставить ";" в SQL запросе - жесть!
|
|
|
Записан
|
|
|
|
alex-v
|
AlexO, соединение с БД есть. В своействе Database прописано значение IBDatabase1.
|
|
|
Записан
|
|
|
|
AlexO
Гродненец
Репутация: +16/-1
Offline
Пол:
Сообщений: 232
Я люблю Гродненский форум!
|
Да-а, хрен его знает, сколько работаю с базами, всегда все было просто. Скорее всего где-то сидит глупая ошибка. Сходи выпей пивка, вернешься, все получится!
|
|
|
Записан
|
|
|
|
alex-v
|
AlexO, спасибо за совет. Хорошо бы найти эту глупую ошибку...
|
|
|
Записан
|
|
|
|
Paladin
|
Ну тогда еще одна мысль: установлено ли соединение компоненты IBQuery с БД? В принципе, если работает IBTable, то должен работать и IBQuery? А ставить ";" в SQL запросе - жесть! А не ставить после SQL запросов ; просто улет... Особенно когда их у тебя два....
|
|
« Последнее редактирование: 04 Март 2008, 19:45:11 от Paladin »
|
Записан
|
|
|
|
Dark Side
|
Касательно твоей проблемы - внимательно просмотри схему соединения через IBDATABASE, проверь все пути, должно работать. Почитай теорию, также могу код скинуть
А я с InterBAse завязал - не надёжны, сейчас юзаю (С++Builder) ADO-components+ MS ACCESS. Не надо на комп пользователя никаких драйверов и программ ставить, вплоть до Виндозы 98.
|
|
|
Записан
|
Воля или СмертЪ
|
|
|
Gloomy Fox
Гродненец
Репутация: +43/-0
Offline
Пол:
Сообщений: 296
to live is to die
|
Это значит что в базе нету таблицы qwe1, неужели не ясно? Возможно потому, что надо схема.таблица. (И при создании тоже) Ересь какая-то. Это ж вам не MySQL. А я с InterBAse завязал - не надёжны, сейчас юзаю (С++Builder) ADO-components+ MS ACCESS. Не надо на комп пользователя никаких драйверов и программ ставить, вплоть до Виндозы 98. Тоже ересь. Если человек считает, что ADO + MsAccess надежнее, чем версионный SQL-сервер, то значит туда ему и дорога. AlexO, мне не нужен IBExpert . Мне нужно программными средствами создавать и открывать таблицы с помощью TIBTable м TIBQuery. TIBTable - работает прекрасно. А вот TIBQuery - выдает ошибку. В чем дело? Если тебе не нужен IBExpert, то полагаю, что нефиг вообще сунуться в программирование для БД IB/FB... А TIBTable - компонент бредовый (как и вообще T...Table)... Если тебе надо создавать таблицы именно из своей программы, то используй TIBSQL или на крайняк TIBQuery. Там и пиши DDL запрос, типа "create table ...". А для выборки и редактирования данных используй TIBDataSet. Что касается конкретно твоей проблемы, попробуй может так: select * from "qwe". Именно с кавычками в запросе. Если не поможет, тогда давай сюда свои исходники и DFM, будем смотреть. А вообще чувствуется недостаточный уровень подготовки, так что изучай документацию: http://ibase.ru/develop.htm
|
|
|
Записан
|
|
|
|
alex-v
|
GlFox, спасибо огромное!!! Вы мне очень помогли!
Действительно, надо было поставить кавычки: select * from "qwe". Теперь заработало!!!!!!!
Спасибо!!!
|
|
|
Записан
|
|
|
|
alex-v
|
UnknownSoldier, я сам недавно познакомился с ADO. Действительно классная штука, мне понравилась. Не нужно никаких оболочек и драйверов на комп, это да! Зато, я думаю, что с ADO не напишешь сетевую СУБД (для локальныз сетей). Поэтому для сетевых программ мне нужен InterBase.
|
|
|
Записан
|
|
|
|
AlexO
Гродненец
Репутация: +16/-1
Offline
Пол:
Сообщений: 232
Я люблю Гродненский форум!
|
Касательно твоей проблемы - внимательно просмотри схему соединения через IBDATABASE, проверь все пути, должно работать. Почитай теорию, также могу код скинуть
А я с InterBAse завязал - не надёжны, сейчас юзаю (С++Builder) ADO-components+ MS ACCESS. Не надо на комп пользователя никаких драйверов и программ ставить, вплоть до Виндозы 98. Прикол! Знаешь, а данные базы можно хранить и в текстовых файлах! Тут и соединений никаких указывать не надо! Променять IB/FB на Access!
|
|
|
Записан
|
|
|
|
|
Dark Side
|
UnknownSoldier, я сам недавно познакомился с ADO. Действительно классная штука, мне понравилась. Не нужно никаких оболочек и драйверов на комп, это да! Зато, я думаю, что с ADO не напишешь сетевую СУБД (для локальныз сетей). Поэтому для сетевых программ мне нужен InterBase.
В том то и прикол, что сетевую СУБД напишешь, у меня есть книга Фаронова по базам данных - там объяснён механизм - и делается это значительно проще чем через IBX. Касательно Interbase - написал две проги и на них реально работают уже год люди, но они крайне не надёжны - неправильный запрос - и приходится резервную копию(заранее созданную мной) юзать, с Access таких проблем нет. А может я чёй-то не понимаю - хотя вродь не дурак
|
|
« Последнее редактирование: 06 Март 2008, 21:04:26 от Jack_Dennis »
|
Записан
|
Воля или СмертЪ
|
|
|
AlexO
Гродненец
Репутация: +16/-1
Offline
Пол:
Сообщений: 232
Я люблю Гродненский форум!
|
Ну если базы данных разрабатывать по Фаронову, то тогда лучше, конечно, Access. Фаронов, вообще расхваливает BDE, даже для разработки под .NET! Только разработка клиент-сервера у Фаронова рассмотрена совсем скудно, почти ничего не сказано про транзакции, хранимые процедуры, если не изменяет память, вообще не рассматриваются. ИМХО, клиент-сервер, вообще не мыслим без хранимых процедур. Access - настольная база данных и не подходит в случаях, где присутствуют даже несколько параллельных пользователей, и в добавок ко всему Access не масштабируется. Выше, пацаны, указывали нормальные онлайн ресурсы: ibase.ru и delphikingdom.com - там найдешь много интересной информации и отзывовов о книгах по соответствующим тематикам. От себя добавлю отличный сайт: rsdn.ru.
|
|
|
Записан
|
|
|
|
|
Dark Side
|
Ну если базы данных разрабатывать по Фаронову, то тогда лучше, конечно, Access. Фаронов, вообще расхваливает BDE, даже для разработки под .NET! Только разработка клиент-сервера у Фаронова рассмотрена совсем скудно, почти ничего не сказано про транзакции, хранимые процедуры, если не изменяет память, вообще не рассматриваются. ИМХО, клиент-сервер, вообще не мыслим без хранимых процедур. Access - настольная база данных и не подходит в случаях, где присутствуют даже несколько параллельных пользователей, и в добавок ко всему Access не масштабируется. Выше, пацаны, указывали нормальные онлайн ресурсы: ibase.ru и delphikingdom.com - там найдешь много интересной информации и отзывовов о книгах по соответствующим тематикам. От себя добавлю отличный сайт: rsdn.ru. Вообще-то Фаронов в нашем деле фигура авторитетная. Как раз-таки в книге которая у меня есть - большее внимание уделено клиент-серверным технологиям(Interbase) разработки баз данных примерно 200 страниц. За Аксес всего страниц 30-40. BDE - рассмотрено в общем виде. Касательно Access - да мегазлобные огромные базы на ней не построишь, будет тормозтиь, но во многих случаях её использование оправдано. Я не фанат какой-то орпеделённой БД, но как в Interbase, так и в Access есть свои недостатки и достоинства (Без фанатизма и святых войн - абы программы работали не глючили и писали вы их не для себя, а для людей!!!)
|
|
|
Записан
|
Воля или СмертЪ
|
|
|
|