|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Доступ к БД без компонентов
Не думал, что когда-нибудь придется работать с БД на делфи, но вот пришлось.
Вопрос вот в чем. О том, что доступ к БД можно получить через соответствующие компоненты (TDataset и прочее счастие) а можно ли как-то в обход них? Например на C# можно использовать классы OleDBConnection, OleDBCommand, OleDBDataReader с помощью которых можно в одном методе создать подключение к базе, выполнить запрос и забрать результат. Причем результаты получить просто - OleDBDataReader["FieldName"] и все. Можно что-то подобное получить на делфи? Компоненты не подходят из-за того, что они завязаны на форму, а создавать их динамически тоже не хочется - хочется иметь возможность написать полностью свой запрос. |
#2
|
|||
|
|||
Создание динамически не займет у тебя много времени
|
#3
|
|||
|
|||
Не спорю, но мне надо еще выполнить запрос явно, вроде "SELECT * FROM MegaTable"
Ко всему прочему не хочу использовать DB* контролы, а хочу получить значение каждого ответа БД строкой Последний раз редактировалось ChinYan, 07.07.2012 в 00:37. |
#4
|
|||
|
|||
А в чем проблема создать нужные компоненты динамически?
Сами компоненты формы не требуют. Кроме того, например компоненты ADO являются просто враппераси над собственно ADO, которые суть COM-объекты, так что их можно просто все создать через интерфейсы. Для работы с IB/FB можно напрямую обращаться к библиотеке gds32.dll (поищи в инете готовый хидер для нее). Ну и к OLEDB, думаю, можно обратиться напрямую |
#5
|
|||
|
|||
Тогда могу предложить тебе написать функцию для реализации этого.
Предположим что-то вроде: Код:
function sql_cmd (DataBase,dbCfg,SQLText:string):Result; var //объявление переменных begin //динамическое создание необходимых компонентов //В зависимости от указанных параметров //Выполнение операции //Вывод результата end; |
#6
|
|||
|
|||
Так, вроде разобрался
|