Создание запросов в БД при помощи Delphi
Фдуч
Дата: 10.02.2003 10:25:34
Есть БД Access в которой сохранены некоторые SQL-операторы. Хотелось бы в run-time создавать и модернизировать уже имеющиеся запросы. Знаю что это можно сделать при помощи DAO, но все примеры работают под VBA. Не подскажите как это можно сделать?
tygra
Дата: 10.02.2003 13:53:03
А что значит в run-time создавать и модернизировать уже имеющиеся запросы ??? Поясни, а то как то непонятно, чего надо. Запрос выполнить? Присваиваешь в Query.Sql.Text = 'запрос' и Query.Open - все.
senyag
Дата: 10.02.2003 14:02:24
Во-первых не Query.SQL.Text, а просто Query.SQL, а во-вторых, насколько я понял нужно выдергивать уже написанные в аксессе запросы, и с ними работать (хотя - почему бы их собственно говоря не переписать под делфи... наверное их слишком много).
Фдуч
Дата: 10.02.2003 14:05:46
В БД есть некий набор сохранённых операторов. Один из них далет запрос из внешней БД. В запросе прописан
SELECT *
FROM ELEMENT_LIST IN 'D:\test.mdb';
Но путь "D:\test.mdb" меняется в зависимости от того где находиться это БД. Доступ напрямую к БД клиенты не имеют (не будешь же ты им всем говорить - зайдите туда и поменяйте путь на правильный). В связи с этим хотелось бы чтобы в момент первого запуска приложения происходило создание этого запроса с правильным путём к БД.
Фдуч
Дата: 10.02.2003 14:07:12
pkarklin
Дата: 10.02.2003 14:11:02
To tygra.
Да нет, насколько я понял, Фдуч хочет в runtime модифицировать и создавать именно запросы в терминологии Access. Вот только никак не пойму, зачем ему это надо. Пусть хоть задачу опишет.
To Фдуч.
Уж если ты решил писать прогу на Delphi, используй Access только как хранилише таблиц и вьюх, тьфу ты, запросов в трактовке Access. Остальное делай на клиенте. Ну уж если очень приспичило, команды DDL в Access еще не отменили: CREATE TABLE..., CREATE PROCEDURE...
senyag
Дата: 10.02.2003 14:32:10
Фдуч, вам вообще в дельфях это надо делать, или, как вы написали, в VBA?
Фдуч
Дата: 10.02.2003 14:32:52
2pkarklin :
Дело в том что сохранённые в Access запросы используют этот самые запрос для того чтобы делать объеденяющие запросы.
ЗЫ: а create Procedure может сделать SQL оператор и сохранить его в Access?
pkarklin
Дата: 10.02.2003 14:38:27
А как же, дорогой.
Выдержка из хелпа по Access:
Синтаксис
CREATE PROCEDURE процедура
[параметр_1 типДанных[, параметр_2 типДанных[, ...]] AS инструкцияSQL
Ниже перечислены аргументы инструкции CREATE PROCEDURE:
Элемент Описание
процедура Имя процедуры. Это имя должно удовлетворять стандартным правилам именования.
параметр_1, параметр_2 От 1 до 255 имен полей или параметров. Например:
CREATE PROCEDURE Продажи_по_странам [Начальная дата] DateTime, [Конечная дата] DateTime;
Более подробные сведения о параметрах содержатся в разделе PARAMETERS.
типДанных Один из первичных типов данных SQL ядра Microsoft Jet или один из их синонимов.
инструкцияSQL Инструкция SQL, такая как SELECT, UPDATE, DELETE, INSERT, CREATE TABLE, DROP TABLE и т. д.
Дополнительные сведения
Процедура SQL состоит из предложения PROCEDURE (которое определяет имя процедуры), необязательного списка описаний параметров и одной инструкции SQL.
Имя процедуры не должно совпадать с именем существующей таблицы.
tygra
Дата: 10.02.2003 14:46:34
2 senyag
Во-первых не Query.SQL.Text, а просто Query.SQL
Да нет уж, Query.SQL.Text - это текстовое представление. А вот Query.SQL - это тип TStrings, в который ты хочешь присвоить строку. Как?