Builder C++ 6.0 + Interbase (клиентское приложение) как?

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

EvilsInterrupt
Сообщения: 66
Зарегистрирован: 29 авг 2006, 10:00

Builder C++ 6.0 + Interbase (клиентское приложение) как?

Сообщение EvilsInterrupt » 29 авг 2006, 10:14

День, добрый.

Поиск по форуму мне ничего не дал, может действительно никто не писал клиентских прог под Interbase, но я в этом сильно сомневаюсь.

Если тема уже была, дайте линк :) Спасибо.

Вобщем, используя Builder C++ 6.0 хочу подключиться к Interbase на локальной машине, как мне это сделать?

Че делал:
1. на форму кинул IBdatabase в его свойстве DatabaseName указал: C:\progra~1\IB\my_file.gdb
2. в Params :
user_name=sysdba
password=masterkey
3. Сделал IBTransaction ему и IBdatabase указал друг друга
4. Диалект сделал 3
5. Поставил IBQuery
6. Пробую :
try {
IBDatabase->connected = true;
mLog->lines->Add("Connect success");
}
catch(...) { mLog->lines->Add("No connect");}

вопрос:
Почему я получаю "No Connect" ?

p.s:
Не хочу флейма, может пнете на хорошую и толковую статью, а то 1 уже качнул, а толку нет!

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 29 авг 2006, 10:30

плохо искал на сайте:
www.ibase.ru/devinfo/ibx.htm#ibdatabase

EvilsInterrupt
Сообщения: 66
Зарегистрирован: 29 авг 2006, 10:00

Пока еще не разобрался

Сообщение EvilsInterrupt » 29 авг 2006, 11:30

1. Сервак Interbase запущен!
2. Обращаюсь к локальному через localhost:c:\bla-bla-bla
3. 3 SQL диалект и понижения его не возникает!
4. Файла по которому хочу создать базу данных нету, т.е. "уже сущетсвует my_base.gdb" не возникнет

однако создать базу не удается!

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 29 авг 2006, 11:58

1. Сервак Interbase запущен!
какой версии, интересно?
однако создать базу не удается!
обычно из программы базу не создают. ее обычно кладут вместе с программой, пустую или уже с частью данных).

Базу создают, обычно, из IBConsole, IBExpert или хоть isql. Если надо из программы, то
http://www.sql.ru/forum/actualthread.aspx?tid=324692

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 29 авг 2006, 12:26

специально для тебя добавил - еще раз прочитай раздел

www.ibase.ru/devinfo/ibx.htm#ibdatabase

EvilsInterrupt
Сообщения: 66
Зарегистрирован: 29 авг 2006, 10:00

Сообщение EvilsInterrupt » 29 авг 2006, 14:05

какой версии, интересно?
Я ставил сначала Borland C++ 6.0 поставил к нему ODAC, после поставил Delphi 7.0 и ничего лишнего не ставил.

Так что все по умолчанию!

Но замечу, я не обнаружил IBDatabaseINI ни в билдере не в дельфи!

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 29 авг 2006, 14:10

Ну а с каким сообщением сервер тебя отвергает можешь воспроизвести добровольно или придется пытать?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 29 авг 2006, 14:28

Но замечу, я не обнаружил IBDatabaseINI ни в билдере не в дельфи!
да и фиг с ним. я уже такого компонента и не помню.

CyberMax
Заслуженный разработчик
Сообщения: 638
Зарегистрирован: 31 янв 2006, 09:05

Сообщение CyberMax » 29 авг 2006, 16:17

А если вывести сообщение исключения? В Delphi это

Код: Выделить всё

except
  on E: Exception do
    ShowMessage(E.Message);

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 29 авг 2006, 16:27

какие исключения, что вы? не надо, прога сама исключение выдаст, в котором будет все написано. Это уже потом можно исключения в программе обрабатывать. А тут ведь уже каша пошла про какой то IBDatabaseINI, и т.п.

stix-s
Заслуженный разработчик
Сообщения: 557
Зарегистрирован: 13 дек 2005, 11:52

Сообщение stix-s » 30 авг 2006, 05:58

EvilsInterrupt писал(а): Я ставил сначала Borland C++ 6.0 поставил к нему ODAC, после поставил Delphi 7.0 и ничего лишнего не ставил.
!
А где сервер IB/FB? Случаем под серверем не имеется в виду клиентская часть, что в комплекте с Delphi идет?
EvilsInterrupt писал(а): Но замечу, я не обнаружил IBDatabaseINI ни в билдере не в дельфи!
не работал с таким, что за зверь?

CyberMax
Заслуженный разработчик
Сообщения: 638
Зарегистрирован: 31 янв 2006, 09:05

Сообщение CyberMax » 30 авг 2006, 12:10

kdv писал(а):какие исключения, что вы? не надо, прога сама исключение выдаст, в котором будет все написано. Это уже потом можно исключения в программе обрабатывать.
По идее не должна выдать, если это исключение в проге обрабатывается (у него catch стоит). Тогда текст возникшего исключения невозможно будет узнать. Для этого и предложил добавить код вывода текста исключения.
Кстати, по сути я повторил вопрос Сибирякова: "Где текст исключения???".

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 30 авг 2006, 12:23

Для этого и предложил добавить код вывода текста исключения.
а я предложил вообще к чертям убрать обработку исключения. На таком этапе программирования (с IBX) это еще рано.

EvilsInterrupt
Сообщения: 66
Зарегистрирован: 29 авг 2006, 10:00

Сообщение EvilsInterrupt » 31 авг 2006, 11:29

Соединиться соединился! :)
Но!

Вобщем в коде:

Код: Выделить всё

    Count = IBDataSet->RecordCount;
    mLog->Lines->Add(DateToStr(Date())+" $ "+TimeToStr(Time())+
                  " $ Count Params from Interbase: "+IntToStr(Count));
говорит, что параметров 1 штука! :)))
А между тем я в SelectSQL, RefreshSQL закинул:

Код: Выделить всё

select	object, item, value0, data_date
from	data
where	 data_date= (select max(data_date) from data)
Такое чувство, что у меня по таймеру не все 210 записей обновляется из Interbase а всего лишь 1.

Буду пробовать! :)

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 31 авг 2006, 12:05

EvilsInterrupt писал(а): Буду пробовать! :)
Можно и пробовать. Долго, увлечённо, плодотворно. Тоже путь. А ленивые предпочитают нажать F1 и прочитать про RecordCount в IBX. Жалкие, ничтожные люди.

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 31 авг 2006, 12:24

Merlin писал(а):Жалкие, ничтожные люди.
Канечна! Настоящим героям не нужны документации, получив RecCnt=1 они не будут париться ерундой, а добьются от разработчиков, чтобы они поправили сей досадный баг.

stix-s
Заслуженный разработчик
Сообщения: 557
Зарегистрирован: 13 дек 2005, 11:52

Сообщение stix-s » 31 авг 2006, 12:32

EvilsInterrupt писал(а):Соединиться соединился! :)
1
аааааа, ну сознайся, сознайся что у тебя за версия IB/FB, а?
Спать спокойно не могу :(
2
ежели ты в запросе получил 1 запись, то чтож ты хочешь получить в IntToStr(Count)?
и при чем тут параметры?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 31 авг 2006, 12:44

Merlin писал(а):А ленивые предпочитают нажать F1 и прочитать про RecordCount в IBX.
в BCB6 таки да, ненажатие на F1 порицаемо и оправданий не имеет.
а вот в BDS 2006 этот дурацкий микрософтовский хелп, там пока докопаешься, состариться можно. Или я пока (за 2 года) им так и не овладел.

p.s. кстати, для экстренных случаев держу под рукой хелп от D7.

EvilsInterrupt
Сообщения: 66
Зарегистрирован: 29 авг 2006, 10:00

Сообщение EvilsInterrupt » 31 авг 2006, 14:58

Про версию IB 6.0

F1 рулит,но при хорошей доке как MSDN, а там про то как в дельфи работать с Interbase ни слова!!!

Кратко, есть параметры в базе, надо их выдирать каждые 3 мин. для этого я и писал в
А между тем я в SelectSQL, RefreshSQL закинул:
Код:
select object, item, value0, data_date
from data
where data_date= (select max(data_date) from data)
по таймеру каждые 180000 я делаю

IBDataBase->connected = true
IBDataSet->Open
IBDataSet->Refresh
IBDataSet->First
while(!IBDataSet->Eof)
{
IBDataSet->FieldValues[нужное]
IBDataSet->Next;
}
IBDataSet->close
IBDataBase->connected = false

но тот запрос, что выше, дает 1 запись, но цикле while перчисляются все 210 параметров.

Вопрос почему RocordCount дает 1, когда выбралось то 210 записей?

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 31 авг 2006, 15:15

EvilsInterrupt писал(а):Про версию IB 6.0
Каждый человек имеет неотъемлемое право ходить по граблям.
EvilsInterrupt писал(а): F1 рулит,но при хорошей доке как MSDN, а там про то как в дельфи работать с Interbase ни слова!!!
Интереснааа... А в моём есть слова... Чудны дела твои, господи... F1 нажимал, жмакнув мышой на какой-нить комбобох поди? Попробуй с TIBSQL например, ну так просто, для разнообразия...
EvilsInterrupt писал(а): Вопрос почему RocordCount дает 1, когда выбралось то 210 записей?
Раз мы с тобой хелпоненавистники и ползучие эмпирики, предлагаю острый натурный эксперимент - вывод RecordCount внутри цикла в какую-нить мемку адд-ом. И задуматься над нею по окончании процесса.

Ответить