Цитата:
Сообщение от Страдалецъ
Нет, ему не это нужно. В Акцесовской БД есть объекты: Таблицы, Запросы.
|
Да, Вы меня правильно поняли.
Цитата:
Сообщение от Страдалецъ
...и получить вы сможете только структуру этих объектов т.е. перечисление полей их составляющих.
|
А это неправда. Решение найдено, благодаря Вашей мысли:
Цитата:
Сообщение от Страдалецъ
Если я правильно понял, то вам нужен исходный текст запроса для вьюшки сохраненной в базе. Не делал такого, но предположу что надо читать Description из схемы базы данных для вашего запроса.
|
Спасибо!
Вот функция, может кому-то еще пригодится.
Код:
function TFmMain.GetSQLFromAcces(MyConnection:TADOConnection;SQLName:String):String;
var NewADODataSet:TADODataSet;
begin
NewADODataSet:=TADODataSet.Create(Application);
NewADODataSet.Connection:=MyConnection;
MyConnection.OpenSchema(siViews, EmptyParam, EmptyParam, NewADODataSet);
NewADODataSet.Locate('TABLE_NAME',SQLName,[]);
Result:=VarToStr(NewADODataSet.FieldValues['VIEW_DEFINITION']);
NewADODataSet.Free;
end;
В параметр MyConnection передаем компонент класса TADOConnection, настроенный на соединение с БД Access, а в SQLName - имя этого запроса в файле MS Access.
Пример использования:
ADOQuery1.SQL.Text:=GetSQLFromAcces(ADOConnection1 ,'MyTableSQL');