Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.06.04;
Скачать: [xml.tar.bz2];

Вниз

Простейший пример IB & Delphi. подключение, запрос, результат.   Найти похожие ветки 

 
NetBot   (2006-04-11 11:46) [0]

Всем добрый день. Возникла острая необходимость написать простую программку для обращения к interbase серверу. Под рукой есть delphi7.
В чём проблема.. хм. никак немогу врубиться что для этого надо. Второй день лопачу инет в поисках простого  примера "Подключение/выполнение запроса/обработка результата".
Всю докуметацию уже дважды прочитал, но какой то ключевой момент немогу догнать. Может мозги после пхп нежелают понимать элементраных вещей.. х.з.

Вообщем. большая просьба ткнуть носом в простой пример, который бы наглядно показал эти нехитрые операции. (ну пожалуста..ненадо меня посылать на faq.. я там был. ).

Если кто решит помочь:
таблица test.
fielda - integer;
fieldb - varchar(40);
fieldc - date;

результат вывести в memo.text ..
заранее спасибо..


 
Курдль ©   (2006-04-11 11:56) [1]


> большая просьба ткнуть носом в простой пример


Тыкаю носом :  C:\Program Files\Borland\Delphi7\Demos\Db\IBDemo


 
NetBot   (2006-04-11 11:59) [2]

несмешно.. эти примеры - это издевательство.. чесслово..


 
Desdechado ©   (2006-04-11 12:01) [3]

ibase.ru


 
Курдль ©   (2006-04-11 12:01) [4]


> NetBot   (11.04.06 11:59) [2]
> несмешно.. эти примеры - это издевательство.. чесслово..


8-()  !!!!!!!!!!!!!!!???????????


 
NetBot   (2006-04-11 12:10) [5]


> Desdechado ©   (11.04.06 12:01) [3]
> ibase.ru

был.. опять таже проблема. нифига не нашёл.

> 8-()  !!!!!!!!!!!!!!!???????????

ага.
----------
люди, ну неужели трудно кинуть пару компонент в форму и скопировать  сюда пример?

Я, вроде, не совсем глупый.. но вот нехватает самой малости для переворота в мозгах.. после 3-х лет пхп как то трудно для понимания всех этих странных компонент и их странноватых методов..


 
Курдль ©   (2006-04-11 12:12) [6]

Если после 3-х лет "работы" на_чем_угодно Вы не научились работать с документацией и прилагаемыми примерами - Вам уже ничего не поможет :(


 
NetBot   (2006-04-11 12:19) [7]


> Если после 3-х лет "работы" на_чем_угодно Вы не научились
> работать с документацией и прилагаемыми примерами - Вам
> уже ничего не поможет :(

незнаю.. может и так.  может мне пора того... в реку с кирпичом на шее.. жизь поржита зря.


 
Курдль ©   (2006-04-11 12:27) [8]


> NetBot   (11.04.06 12:19) [7]
> незнаю.. может и так.  может мне пора того... в реку с кирпичом
> на шее.. жизь поржита зря.


Знаю я этот "синдром чесания рук"! Рекомендую взять себя в руки (а не покончить в себя или наложить себе в руки) и оторваться от компа на недельку для ознакомления с бумажной литературой.


 
NetBot   (2006-04-11 12:35) [9]


> оторваться от компа на недельку

хех. в том то и дело, что нет этих неделек.. да и вообще нет задачи изучать дельфи глубже, чем написание данной задачи. мндя..
всего то надо сделать пару запросов и выгрузить их в файл.. на пхп я бы даже и не задумывался о такой задачи.. а вот в дельфях второй (или уже третий.. помоему третий..) день торможу. И кучу мануалов перечитал.. и учебники.. но нигде не увидел наглядного примера. который бы просветлил мозги.
может действительно задача требует хрен знает каких затрат человеко/часов и простым примеров необъяснит? а?


 
Курдль ©   (2006-04-11 12:41) [10]


> может действительно задача требует хрен знает каких затрат
> человеко/часов и простым примеров необъяснит? а?

Я, давая ссылку на  C:\Program Files\Borland\Delphi7\Demos\Db\IBDemo не из памяти ее взял. Просто помню что есть демосы, демосы по базам и должны быть по IB. За 10 секунд я этот сэмпл нашел. Через 10 секунд он у меня открылся в Делфи. Одним шелчком по кнопке "Коннект" я вышел на функцию, так жалобно запрашиваемую вами под пунктом "Подключение".


 
NetBot   (2006-04-11 12:47) [11]


> Одним шелчком по кнопке "Коннект" я вышел на функцию, так
> жалобно запрашиваемую вами под пунктом "Подключение".

хех. это я и сам увидел.. ну а что дальше? Выполнить текст запроса и разбор результатов?
Ув. Курдль. ну серьёзно.. 5 рабочих строчек кода - страшная военая тайна?


 
Megabyte ©   (2006-04-11 12:47) [12]

По идее ты бы успел за пару-тройку часов понять, как работать с IB в Дельфи.
Компоненты луче использовать с закладки IBExpress. Но литературу можно почитать по любой из технологий доступа, т.к. принципы работы с БД между ними похожи, компоненты отличаются префиксом: XXXTable, XXXQuery, XXXDatabase.
Тебе для данной задачи надо 3 компонента: IBDatabase, IBQuery, IBTransaction(ну разве что с ним не сразу придет понимание).

з.ы. здесь не любят бесплатно давать готовый пример без твоих вариантов...


 
Desdechado ©   (2006-04-11 13:22) [13]

> здесь не любят бесплатно давать готовый пример
Не так. Здесь пытаются направить мозги в нужное русло и заставить думать, а не копипастом заниматься.
А код дают для действительно интересных проблем, не отраженных в DEMOS и запрятанных глубоко в доках.


 
NetBot   (2006-04-11 13:31) [14]


> Здесь пытаются направить мозги в нужное русло и заставить
> думать, а не копипастом заниматься.

ну дык.. разве я прошу "сделайте всё за меня"?
прошу ведь простенький пример.. а дальше я сам..


 
Anatoly Podgoretsky ©   (2006-04-11 14:03) [15]

NetBot   (11.04.06 13:31) [14]
Просишь.

Простенький пример в {DELPHI}\Demos\Db\IBDemo
Более сложный там же.


 
NetBot   (2006-04-11 14:14) [16]


> Простенький пример в {DELPHI}\Demos\Db\IBDemo

да вы с ума сошли.. чесслово..
И так, что там написано:
procedure TdmEvents.dmEventsCreate(Sender: TObject);
begin
 with Database1 do
   Params.Values["Server Name"] := ExtractFilePath(ParamStr(0)) +
     "Events.gdb";
end;

ну да.. очень информативный пример.. апупедъ.
а вот что надо было (хотя и незнаю.. ох.. правильноли..):
   IBDatabase1.DatabaseName:="localhost:E:\ib_base\TEST1.GDB";
   IBDatabase1.Params.Add ("user_name=SYSDBA");
   IBDatabase1.Params.Add ("password=masterkey");
   IBDatabase1.Params.Add ("lc_ctype=win1251");
   IBDatabase1.LoginPrompt:=False;

нее.. я. конечно, понимаю, что все даже незадумываются о компонентах, свойствах и методах..  но вот лично мне трудновато..


 
Anatoly Podgoretsky ©   (2006-04-11 14:51) [17]

Брось ты это дело.


 
NetBot   (2006-04-11 15:07) [18]


> Брось ты это дело.

с удовольствием.. вот щас допишу и забуду.

Кстати, странно.. почему толком не работает TestConnected .. в любом случае до Connected:=True выдаёт false.. хотя, если его просто неучитывать, то вроде всё работает.. хм. для чего он тогда нужен? Может я что то непонимаю?
Или он просто возвращает состояние (было ли ранее Connected в true или false)


 
Курдль ©   (2006-04-11 15:36) [19]


> begin
>  with Database1 do
>    Params.Values["Server Name"] := ExtractFilePath(ParamStr(0))
> +
>      "Events.gdb";
> end;
> ну да.. очень информативный пример.. апупедъ.


Я считаю, что весьма информативный пример! Вы в школе какой язык учили? Албанский?


начало
 вместе с БазаДанных сделать
    Параметры.Значения["Имя Сервера"] := ИзвлечьПутьФайла(СтроковыйПараметр(0)) + "Events.gdb";
конец;


 
NetBot   (2006-04-11 15:57) [20]

не буду спорить.. это моё субъективное мнение.
если кто то думает иначе - то он думает иначе. :)

ладно.. далее по вопросу.. при попытке выполнить запрос выдаёт class EIBClientError with message "database no assigned".

вот код.

begin
   IBDatabase1.DatabaseName:="localhost:E:\ib_base\TEST1.GDB";
   IBDatabase1.Params.Add ("user_name=SYSDBA");
   IBDatabase1.Params.Add ("password=masterkey");
   IBDatabase1.Params.Add ("lc_ctype=win1251");
   IBDatabase1.LoginPrompt:=False;

   try
    IBDatabase1.Connected:=True;  
    IBQuery1.Close;
    IBQuery1.SQL.Clear;
    IBQuery1.SQL.Add("select * from NEW_TABLE");
    IBQuery1.Open;
    memo1.Text:=IBQuery1.FieldByName("TEST_FIELD").AsString+" "+IBQuery1.FieldByName("TEST_FIELD2").AsString;

    IBDatabase1.Connected:=False;
   except
    IBDatabase1.Connected:=False;
    MessageBox (Application.Handle, "Error", 0);
   end;
end;


ну чесслово, почему?? Что этой падле ещё надо???
Вообще из диалога "TIBDAtabase" проверял. значения для подключения верны..


 
Desdechado ©   (2006-04-11 18:22) [21]

запрос происходит ЧЕРЕЗ подключение, т.е. ibquery.database надо присвоить ibdatabase



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2006.06.04;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.045 c
15-1146655659
Александр Б.
2006-05-03 15:27
2006.06.04
Скрипты и дизайнер форм


1-1146048770
Leonardo
2006-04-26 14:52
2006.06.04
ListBox с рамкой


2-1147985089
Firefly
2006-05-19 00:44
2006.06.04
Файл записей


2-1147712772
***(H@kker)***
2006-05-15 21:06
2006.06.04
Как это делает WinAmp


3-1144756580
Nic
2006-04-11 15:56
2006.06.04
MS SQL Server: быстрый старт





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский