![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
SQL в {CONSOLE APPLICATION} [D7, FireBird 2.0]
h8394E © (2006-04-18 02:13:00)Доброго времени суток!
Мне надо обралиться к базе данных FireBird 2.0 из моего консольного приложения. Выполнить SQL запрос из переменной типа TStringList и получить ответ. Конечно, можно скачать FIB компоненты и во время выполнения моей программы выделить память и создать их, они-то VCL. Есть ли просто модули какие-нибудь, чтоб быстренько подключиться, дать логин, пароль, выполнить запрос, получить ответ и всё запомнить? А то мне не очень нравится создание DataBase, Querry и Transaction компонентов в консоли...
sniknik (2006-04-19 15:04:00) [21]да, с формами (SysUtils, Forms;) - 367 616
для полноты картины.
sniknik (2006-04-19 15:02:00) [22]в D7 всетаки, чтото тянут. надо все initialization в модуле просмотреть...
program Project1;- 14 848
begin
end.
program Project1;- 40 448
uses
SysUtils;
begin
end.
program Project1;- 285 184
uses
SysUtils, IBDatabase;
begin
end.
D7соответственно.
atruhin (2006-04-19 14:47:00) [23]
> нет, не тянут они VCL
Посмотрел, согласен ошибся. Я с ними не работаю по тому и написал - по моему :). В FIB отдельная директива компиляции, но все равно советую их купить, если с FB работать. Причин достаточно.
jack128 (2006-04-19 14:38:00) [24]Сокол © (19.04.06 12:29) [12]
Создавай компоненты в runtime, тормозов нет абсолютно никаких, проверено почти на всех БД, только не используй ADO-компоненты - в консольном приложении с ними есть проблеммы
? Почему? Если ты забыл com инициализировать, то это еще не проблема..
atruhin © (19.04.06 13:13) [15]
Только IB компненты по моему всегда тянут VCL,
нет, не тянут они VCL
program Project3;
uses
SysUtils, Forms;
begin
end.
занимает 387082, а
program Project3;304640. Делай выводы.
uses
SysUtils, IBDatabase;
begin
end.
PS Delphi2006
atruhin (2006-04-19 13:13:00) [25]Нет ни каких проблем с консольным подключением. При запуске программы содаешь и подключаешь Database, остальное по мере надобности. Только IB компненты по моему всегда тянут VCL, поэтому советую купить FIB, там есть опция - не использовать VCL
Сокол (2006-04-19 12:43:00) [26]Тормоза при подключении у меня были только с СУБД IBM DB2, работающе по OS/400 на серверах iSeries AS/400, с остальными все нормально. Хотя здесь все еще зависит от железа, на котором работаешь.
Desdechado (2006-04-19 12:35:00) [27]я ж говорил - основные тормоза при подключении к БД
если у тебя подключение единожды, то все и без датамодуля работать будет
если оно у тебя для каждого обращения к cgi извне, то будут тормоза в любом случае
Сокол (2006-04-19 12:29:00) [28]Создавай компоненты в runtime, тормозов нет абсолютно никаких, проверено почти на всех БД, только не используй ADO-компоненты - в консольном приложении с ними есть проблеммы.
h8394E (2006-04-19 02:13:00) [29]А если я DataModule добавлю. Вставлю туда компоненты и подсоединю их ещё в design-time, это ничего не изменит?
h8394E (2006-04-18 21:15:00) [30]Вот, PHP подключается к базе данных как раз так, как мне надо! У кого-нить есть исходники PHP?
h8394E (2006-04-18 18:43:00) [31]Sergey Masloff,
> Пример на це см. в
> {FBDir}/Examples/Api3.c
>
> Переписать на паскале не проблема но код еще увеличится
> да и заголовки свежие паскалевские искать надо будет
А ты переписать не сможешь? Или может кто знает где найти, а то я в си знаю только что такое
int idiot;
Плохиш (2006-04-18 18:37:00) [32]
> Мне просто не нужны все эти обработки ошибок, откаты о так
> далее.
> В смысле, когда запускаешь форму, в основном, они-то уже
> подключены к бд.
Неужели кому-то ещё нужны такие программы? 8-O
h8394E (2006-04-18 18:25:00) [33]Мне просто не нужны все эти обработки ошибок, откаты о так далее. Мне надо бастрая записть, поиск и чтение из файла.
h8394E (2006-04-18 18:21:00) [34]Или, может вы посоветуете, какую, нить базу данных, что б было легко и быстро делать
> создание, подключение, поиск, анализ и получение ответа
h8394E (2006-04-18 17:57:00) [35]Desdechado, к сожалению, ни того ни другого я не знаю... Вот, мне с FireBird 2.0 пришла программа - консоль "Firebird ISQL tool". Может мне через пайпы к ней присоединиться и писать туда?
Desdechado (2006-04-18 17:02:00) [36]если на каждое обращение ты с нуля все пересоздаешь, то долго (причем основное время - подключение)
посмотри в сторону веб-сервиса, постоянно висящего и держащего подключение (или пул подключений)
h8394E (2006-04-18 16:53:00) [37]А будет ли это достаточно быстро? В смысле, когда запускаешь форму, в основном, они-то уже подключены к бд. А тут - время на создание, подключение, поиск, анализ и разрешение. Просто моя консоль как cgi подапачем выполняется.
Desdechado (2006-04-18 11:30:00) [38]TDatabase и TQuery вовсе не обязательно бросать на форму или датамодуль, чтоб ими воспользоваться
достаточно сделать
qry:=TQuery.Create( Application ) // зацепит в себя модуль Forms
или
qry:=TQuery.Create( nil ) // нет хозяина у компонента, ОБЯЗАТЕЛЬНО вручную разрушать
и в finally сделать таким Free
Sergey Masloff (2006-04-18 06:12:00) [39]h8394E (18.04.06 02:13)
>А то мне не очень нравится создание DataBase, Querry и Transaction компонентов в консоли...
Почему? Им параллельно где их создают.
Напрямую можно используя клиентский API InterBase. Я тут приводил как-то примитивный код. Спрашивавший решил что ну его на фиг лучше создать компоненты ;-)))
Пример на це см. в
{FBDir}/Examples/Api3.c
Переписать на паскале не проблема но код еще увеличится да и заголовки свежие паскалевские искать надо будет