Как узнать о наличии таблицы в БД MS SQL Server 2005 из Delphi?
Вариант функции, которая возвращает истину, если таблица в Базе данных существует. Если таблицы не существует, функция вернет ложь. Применяется для MS SQL Server 2005. На других версиях не тестировалось, но должно работать и на 2000 и на 2008.
В качестве аргумента в функцию передается ссылка на объект TADOQuery и два строковых параметра - имя таблицы и имя Базы Данных.
В качестве аргумента в функцию передается ссылка на объект TADOQuery и два строковых параметра - имя таблицы и имя Базы Данных.
FUNCTION isTableExists(DataSet: TADOQuery; TableName: AnsiString;
DataBaseName: AnsiString): Boolean;
begin
DataSet.SQL.Text := ' USE [' + DataBaseName + '];' +
' IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N''[dbo].['
+ TableName + ']'') AND type in (N''U''))' +
' SELECT 1 AS Answer ELSE Select 0 AS Answer;';
DataSet.Open;
if DataSet.FieldByName('Answer').Value = 1 then
Result := true
Else
Result := False;
end;
Пример использования:
... sMMYY := 'PMC'; if sMonthCalendarZP.Month <10 data-blogger-escaped-...="" data-blogger-escaped-:="LabelQzQp.Caption" data-blogger-escaped-begin="" data-blogger-escaped-end="" data-blogger-escaped-if="" data-blogger-escaped-ightstr="" data-blogger-escaped-inttostr="" data-blogger-escaped-istableexists="" data-blogger-escaped-labelqzqp.caption="" data-blogger-escaped-lcgetcaption="" data-blogger-escaped-m.querycommon="" data-blogger-escaped-not="" data-blogger-escaped-nttostr="" data-blogger-escaped-plane="" data-blogger-escaped-pre="" data-blogger-escaped-showmessage="" data-blogger-escaped-smmyy="" data-blogger-escaped-smonthcalendarzp.month="" data-blogger-escaped-smonthcalendarzp.year="" data-blogger-escaped-then="">
Комментариев нет:
Отправить комментарий