![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Простейший пример IB & Delphi. подключение, запрос, результат.
NetBot © (2006-04-11 11:46:00)Всем добрый день. Возникла острая необходимость написать простую программку для обращения к interbase серверу. Под рукой есть delphi7.
В чём проблема.. хм. никак немогу врубиться что для этого надо. Второй день лопачу инет в поисках простого примера "Подключение/выполнение запроса/обработка результата".
Всю докуметацию уже дважды прочитал, но какой то ключевой момент немогу догнать. Может мозги после пхп нежелают понимать элементраных вещей.. х.з.
Вообщем. большая просьба ткнуть носом в простой пример, который бы наглядно показал эти нехитрые операции. (ну пожалуста..ненадо меня посылать на faq.. я там был. ).
Если кто решит помочь:
таблица test.
fielda - integer;
fieldb - varchar(40);
fieldc - date;
результат вывести в memo.text ..
заранее спасибо..
Desdechado (2006-04-11 18:22:00) [1]запрос происходит ЧЕРЕЗ подключение, т.е. ibquery.database надо присвоить ibdatabase
NetBot (2006-04-11 15:57:00) [2]не буду спорить.. это моё субъективное мнение.
если кто то думает иначе - то он думает иначе. :)
ладно.. далее по вопросу.. при попытке выполнить запрос выдаёт 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" проверял. значения для подключения верны..
Курдль (2006-04-11 15:36:00) [3]
> begin
> with Database1 do
> Params.Values['Server Name'] := ExtractFilePath(ParamStr(0))
> +
> 'Events.gdb';
> end;
> ну да.. очень информативный пример.. апупедъ.
Я считаю, что весьма информативный пример! Вы в школе какой язык учили? Албанский?
начало
вместе с БазаДанных сделать
Параметры.Значения['Имя Сервера'] := ИзвлечьПутьФайла(СтроковыйПараметр(0)) + 'Events.gdb';
конец;
NetBot (2006-04-11 15:07:00) [4]
> Брось ты это дело.
с удовольствием.. вот щас допишу и забуду.
Кстати, странно.. почему толком не работает TestConnected .. в любом случае до Connected:=True выдаёт false.. хотя, если его просто неучитывать, то вроде всё работает.. хм. для чего он тогда нужен? Может я что то непонимаю?
Или он просто возвращает состояние (было ли ранее Connected в true или false)
Anatoly Podgoretsky (2006-04-11 14:51:00) [5]Брось ты это дело.
NetBot (2006-04-11 14:14:00) [6]
> Простенький пример в {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:03:00) [7]NetBot (11.04.06 13:31) [14]
Просишь.
Простенький пример в {DELPHI}\Demos\Db\IBDemo
Более сложный там же.
NetBot (2006-04-11 13:31:00) [8]
> Здесь пытаются направить мозги в нужное русло и заставить
> думать, а не копипастом заниматься.
ну дык.. разве я прошу "сделайте всё за меня"?
прошу ведь простенький пример.. а дальше я сам..
Desdechado (2006-04-11 13:22:00) [9]> здесь не любят бесплатно давать готовый пример
Не так. Здесь пытаются направить мозги в нужное русло и заставить думать, а не копипастом заниматься.
А код дают для действительно интересных проблем, не отраженных в DEMOS и запрятанных глубоков доках.
NetBot (2006-04-11 12:47:00) [10]
> Одним шелчком по кнопке "Коннект" я вышел на функцию, так
> жалобно запрашиваемую вами под пунктом "Подключение".
хех. это я и сам увидел.. ну а что дальше? Выполнить текст запроса и разбор результатов?
Ув. Курдль. ну серьёзно.. 5 рабочих строчек кода - страшная военая тайна?
Megabyte (2006-04-11 12:47:00) [11]По идее ты бы успел за пару-тройку часов понять, как работать с IB в Дельфи.
Компоненты луче использовать с закладки IBExpress. Но литературу можно почитать по любой из технологий доступа, т.к. принципы работы с БД между ними похожи, компоненты отличаются префиксом: XXXTable, XXXQuery, XXXDatabase.
Тебе для данной задачи надо 3 компонента: IBDatabase, IBQuery, IBTransaction(ну разве что с ним не сразу придет понимание).
з.ы. здесь не любят бесплатно давать готовый пример без твоих вариантов...
Курдль (2006-04-11 12:41:00) [12]
> может действительно задача требует хрен знает каких затрат
> человеко/часов и простым примеров необъяснит? а?
Я, давая ссылку наC:\Program Files\Borland\Delphi7\Demos\Db\IBDemoне из памяти ее взял. Просто помню что есть демосы, демосы по базам и должны быть по IB. За 10 секунд я этот сэмпл нашел. Через 10 секунд он у меня открылся в Делфи. Одним шелчком по кнопке "Коннект" я вышел на функцию, так жалобно запрашиваемую вами под пунктом "Подключение".
NetBot (2006-04-11 12:35:00) [13]
> оторваться от компа на недельку
хех. в том то и дело, что нет этих неделек.. да и вообще нет задачи изучать дельфи глубже, чем написание данной задачи. мндя..
всего то надо сделать пару запросов и выгрузить их в файл.. на пхп я бы даже и не задумывался о такой задачи.. а вот в дельфях второй (или уже третий.. помоему третий..) день торможу. И кучу мануалов перечитал.. и учебники.. но нигде не увидел наглядного примера. который бы просветлил мозги.
может действительно задача требует хрен знает каких затрат человеко/часов и простым примеров необъяснит? а?
Курдль (2006-04-11 12:27:00) [14]
> NetBot (11.04.06 12:19) [7]
> незнаю.. может и так. может мне пора того... в реку с кирпичом
> на шее.. жизь поржита зря.
Знаю я этот "синдром чесания рук"! Рекомендую взять себя в руки (а не покончить в себя или наложить себе в руки) и оторваться от компа на недельку для ознакомления с бумажной литературой.
NetBot (2006-04-11 12:19:00) [15]
> Если после 3-х лет "работы" на_чем_угодно Вы не научились
> работать с документацией и прилагаемыми примерами - Вам
> уже ничего не поможет :(
незнаю.. может и так. может мне пора того... в реку с кирпичом на шее.. жизь поржита зря.
Курдль (2006-04-11 12:12:00) [16]Если после 3-х лет "работы" на_чем_угодно Вы не научились работать с документацией и прилагаемыми примерами- Вам уже ничего не поможет :(
NetBot (2006-04-11 12:10:00) [17]
> Desdechado © (11.04.06 12:01) [3]
> ibase.ru
был.. опять таже проблема. нифига не нашёл.
> 8-() !!!!!!!!!!!!!!!???????????
ага.
----------
люди, ну неужели трудно кинуть пару компонент в форму и скопировать сюда пример?
Я, вроде, не совсем глупый.. но вот нехватает самой малости для переворота в мозгах.. после 3-х лет пхп как то трудно для понимания всех этих странных компонент и их странноватых методов..
Курдль (2006-04-11 12:01:00) [18]
> NetBot (11.04.06 11:59) [2]
> несмешно.. эти примеры - это издевательство.. чесслово..
8-() !!!!!!!!!!!!!!!???????????
Desdechado (2006-04-11 12:01:00) [19]ibase.ru
NetBot (2006-04-11 11:59:00) [20]несмешно.. эти примеры - это издевательство.. чесслово..