![]() |
|
|
#1
|
|||
|
|||
|
Суть такова есть 7 Edit'ов в них ввожу название таблиц в БД. Data_1...7. Как
мне сравнить то что я ввел в Edit'ы с существующими в БД таблицами. То есть я ввел в какой не то Edit не существующую таблицу и мне бы выдало сообщение что таблицы такой в БД не существует. БД MSSQL2005. |
|
#2
|
|||
|
|||
|
Цитата:
Варианты: 1. Разобраться с метадатой. У сервера можно спросить какие табицы есть в БД (http://blog.sqlauthority.com/2007/06...-of-database/). 2. Просто попробовать сделать простенький запрос в соотв. табличку, типа: Код:
select 1 from tablename where 1=2 ЗЫ. Еще один забаненный в гугле ![]() |
|
#3
|
|||
|
|||
|
Цитата:
Я вот так вот планирую. Код:
AdoQuery1.SQL.Text:='select 1 from tablename where 1=2'; Чтоб Код:
ShowMessage('Таблицы не существует');Последний раз редактировалось Zhigalov, 06.07.2013 в 20:46. |
|
#4
|
||||
|
||||
|
|
|
#5
|
|||
|
|||
|
Цитата:
Мне кажется проще всего, как тут предложили сделать запросом. Только я вот не как не могу сообразить как проверить то выполнился он или нет(То есть если запрос успешный то все хорошо едем дальше, а ежели нет то пишем сообщение ). В принципе если такой таблицы нет, Delphi выдает "Invalid object name 'dbName'''. Но все таки хотелось бы чтоб на нашем языке было и понятно пользователю. |
|
#6
|
||||
|
||||
|
Ну можно ведь вообще просто поступить. Считываете имена таблиц в стринглист и проверяете ваше введенное в едите имя на наличие в стринглисте через его метод инексоф. И всех делов.
Код:
procedure TForm2.Button1Click(Sender: TObject);
Var
SL: TStringList;
begin
if not AdoConnection1.Connected then Exit;
SL := TStringList.Create;
AdoConnection1.GetTableNames(SL);
if SL.IndexOf(Edit1.Text) = -1
then ShowMessage('Нетути такой табли');
SL.Free;
end;Последний раз редактировалось Страдалецъ, 08.07.2013 в 11:11. |
| Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение: | ||
Zhigalov (08.07.2013)
| ||
|
#7
|
|||
|
|||
|
Цитата:
Даже и не задумался чтоб так сделать. Сделал вот так вот. Сейчас видимо переделаю. Код:
...
try
DataModule2.Query.Open;
except
on EOleException do MessageDlg('Некорректные настройки.'+
''+#13#10+''+Form3.Edit1.Text+' не существует!!!', mtError, [mbCancel], 0);
end; |