Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2018, 18:46   #1
Linsor
Пользователь
 
Регистрация: 27.07.2018
Сообщений: 15
Сообщение Программное добавление всех столбцов из набора данных

Здравствуйте, У меня появился вопрос: "Есть ли возможность добавить все столбцы из набора данных по нажатию кнопки например?" (Add all fields)

Если кто-то знает, пожалуйста помогите. Заранее спасибо
Linsor вне форума Ответить с цитированием
Старый 06.11.2018, 19:47   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

http://www.programmersforum.ru/showthread.php?t=321762
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 06.11.2018, 19:51   #3
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от Linsor Посмотреть сообщение
"Есть ли возможность добавить все столбцы из набора данных по нажатию кнопки
Можно через SQL запрос INSERT - SELECT и это запрос выполнять через Query
xxbesoxx вне форума Ответить с цитированием
Старый 06.11.2018, 22:46   #4
Linsor
Пользователь
 
Регистрация: 27.07.2018
Сообщений: 15
По умолчанию

А есть ли возможность без SQL..?
Linsor вне форума Ответить с цитированием
Старый 06.11.2018, 23:25   #5
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от Linsor Посмотреть сообщение
А есть ли возможность без SQL..?
Есть, с помощью цикла - но будеть медленный.
xxbesoxx вне форума Ответить с цитированием
Старый 06.11.2018, 23:33   #6
Linsor
Пользователь
 
Регистрация: 27.07.2018
Сообщений: 15
По умолчанию

Цикла..? Извиняюсь, а вы можете показать как примерно это будет выглядеть..?
Linsor вне форума Ответить с цитированием
Старый 07.11.2018, 08:24   #7
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от Linsor Посмотреть сообщение
а вы можете показать как примерно это будет выглядеть..?
Давайте вы создайте пример- что есть и что надо ?! и потренируемся на него
xxbesoxx вне форума Ответить с цитированием
Старый 07.11.2018, 09:17   #8
Linsor
Пользователь
 
Регистрация: 27.07.2018
Сообщений: 15
По умолчанию

Delphi
Код:
procedure TMainForm.BoxDBNameChange(Sender: TObject);
var

  IDX : integer;
begin

  IDX := BoxDBName.ItemIndex;
      
  With DataModule2 do begin
      ADOConnection1.ConnectionString := '';
      ZConnection1.Catalog := BoxDBName.Items[IDX];



end;

Компоненты Zeos или ADO... имена баз данных загружаются в ComboBox, после выбора нужной, таблица из этой базы данных загружается в DBGrid... А так сейчас стоят ZConnection ADOConnection, ADOTable, DataSource

Последний раз редактировалось Linsor; 07.11.2018 в 09:34. Причина: Уточнение
Linsor вне форума Ответить с цитированием
Старый 07.11.2018, 09:35   #9
Linsor
Пользователь
 
Регистрация: 27.07.2018
Сообщений: 15
По умолчанию

Цитата:
Сообщение от xxbesoxx Посмотреть сообщение
Давайте вы создайте пример- что есть и что надо ?! и потренируемся на него
Я всегда готов учиться, по сути для этого я и делаю это всё...
Linsor вне форума Ответить с цитированием
Старый 07.11.2018, 11:23   #10
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

1) Давайте я подключаюсь к MS SQL Server базу Northwind через ADO... Я знаю что из MS SQL магу получить "список таблиц"вот так
Код:
select  TABLE_NAME
from information_schema.tables
если у вас другой СУБД - то можете нагуглить как получить список таблиц
2) Потом через Delphi
Код:
procedure TForm1.FormShow(Sender: TObject);
begin
  //  Выполняю SQL запрос
  with ADOQuery1 do
  begin
    SQL.Clear;
    SQL.Add(' select  TABLE_NAME '+
            ' from information_schema.tables');
    Open;
  end;
  // Через цикл  While заполнить combobox
  ComboBox1.Items.Clear;
  While not ADOQuery1.Eof do
  begin
     ComboBox1.Items.Add(ADOQuery1.Fields[0].AsString);
     ADOQuery1.Next;
  end;
end;

end.
Так у меня все таблиц уже на ComboBox1

Цитата:
Сообщение от Linsor Посмотреть сообщение
после выбора нужной, таблица из этой базы данных загружается в DBGrid
Давайте для этого еще одну ADOQuery а то через ADOTable - что то криво - мне не нравится ADOTable и вам тоже советую ADOQuery и SQL запрос
ADOQuery2 --> Connection = ADOConnection1
DataSource1 --> DataSet = ADOQuery2
DBGrid1 ---> DataSource = DataSource1
и начинаем
Код:
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
if Trim(ComboBox1.Text)<>'' then
  begin
    with ADOQuery2 do
    begin
      Close;
      SQL.Clear;
      SQL.Add(' SELECT * FROM  '+ Trim(ComboBox1.Text) +' ');
      Open;
    end;
  end;
end;
Изображения
Тип файла: jpg 1.jpg (74.8 Кб, 116 просмотров)
Тип файла: jpg 2.jpg (34.8 Кб, 63 просмотров)
Тип файла: jpg 3.jpg (67.5 Кб, 54 просмотров)
Тип файла: jpg 4.jpg (63.9 Кб, 41 просмотров)

Последний раз редактировалось xxbesoxx; 07.11.2018 в 11:27.
xxbesoxx вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программное добавление картинок в Word xrob Компоненты Delphi 0 30.04.2014 18:06
Программное добавление textBox zaki C# (си шарп) 2 06.12.2013 19:15
Дан двухмерный массив из 20 столбцов. Вставить в него столбец из чисел 10 после всех четных столбцов. Дмитрий142 Помощь студентам 9 07.06.2012 19:32
программное добавление items в ListView Марк Охман Общие вопросы Delphi 4 30.12.2010 16:44
Программное добавление принтера AlexandrSid Общие вопросы Delphi 5 13.08.2008 15:29