Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.09.2023, 09:40
leon2009 leon2009 вне форума
Новичок
 
Регистрация: 18.03.2009
Сообщения: 71
Репутация: 10
Восклицание Проверка таблицы

Здравствуйте! как проверить на существование TEST и TEST1
Когда ТЕСТ (он существует) = все отлично а при ТЕСТ1 (его нет) = выдает ошибку такого нет
Код:
  SQLQuery1.SQL.Clear;
  SQLQuery1.SQL.Text:='select * from test1';
  //SQLQuery1.Open;
  SQLQuery1.ExecSQL;
  if SQLQuery1.IsEmpty then
   memo1.text:='поле с таким значением есть' else memo1.Text:= 'поля с таким значением нет';
//SQLQuery1.Close;
есть ли еще методы? пр:
if SQLTable1.TableName= "test" then memo1=ok else memo1=nono
Спасибо!
а то примеры на адо или вообще список что куда, но ни как
Ответить с цитированием
  #2  
Старый 18.09.2023, 17:44
leon2009 leon2009 вне форума
Новичок
 
Регистрация: 18.03.2009
Сообщения: 71
Репутация: 10
Лампочка готово

Код:
procedure TForm1.Button7Click(Sender: TObject);
begin
SQLQuery1.SQLConnection:=SQLConnection1;
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Text:='SHOW TABLES LIKE "test"'; //SQLQuery1.SQL.Text:='select * from test1';
//SQLQuery1.ExecSQL;
SQLQuery1.Open;
if not SQLQuery1.IsEmpty then
begin
  memo1.text:='поле с таким значением есть';
end
else
begin
  memo1.Text:= 'поля с таким значением нет';
end;
SQLQuery1.Close;
end;
Ответить с цитированием
  #3  
Старый 18.09.2023, 22:47
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,053
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Все зависит от БД с которой ты работаешь.
В общем случае в СУБД есть системные таблицы/вью, из которых можно прочитать информвцию о структурах данных (таблицах, вью и пр).

Вот тут есть примеры для MS SQL, Oracle и MySQL:
https://www.datameer.com/blog/sql_ho...om-a-database/
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
leon2009 (19.09.2023)
  #4  
Старый 19.09.2023, 22:05
leon2009 leon2009 вне форума
Новичок
 
Регистрация: 18.03.2009
Сообщения: 71
Репутация: 10
Хорошо как

а как сделать запись, если очень много строк 10000 пр.
Код:
SqlQuery1.SQL.Text := 'INSERT INTO '+edit6.Text+' (id, pach, size, attribute) VALUES (:id, :pach, :size, :attribute)';
SqlQuery1.ParamByName('id').AsInteger := i;
SqlQuery1.ParamByName('pach').AsString := ListBox2.Items.Strings[i];
SqlQuery1.ParamByName('size').AsString := '4456874mb'; //inttostr(imgsize);
SqlQuery1.ParamByName('attribute').AsString :='links';
SqlQuery1.ExecSQL;
через FOR все прогонять?
Ответить с цитированием
  #5  
Старый 19.09.2023, 23:03
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,053
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Если БД поддерживает батч режим, то можно сделать большой запрос (сгенерить его). Что-то типа:
Код:
INSERT INTO Info (id,Cost,city)  
VALUES (1,200, 'Pune'), (2, 150,'USA'), (3,345, 'France'); 
Но тут придется генерировать запрос во время выполнения.

А так да, в цикле. Ну а цикл зависит от того, где у тебя храняться данные, которые надо вставлять.
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
leon2009 (20.09.2023)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:57.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter