Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.96/25: Рейтинг темы: голосов - 25, средняя оценка - 4.96
0 / 0 / 0
Регистрация: 01.09.2014
Сообщений: 55

Копирование данных из одного DbGrid-а в другой

18.09.2014, 06:21. Показов 4987. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте помогите пожалуйста, у меня есть два dbgrida. Оба таблицы одинаковые т.е копия. DBGrid1 подключен через Table и там dbf файл. A DBgrid2 подключен через ADOConnection и ADOTable там таблица пустая созданная в sql servere. А DBGrid1 не пустая там данные есть из dbf файла. В DBGride1 и DBGride2 таблицы столбцы одинаковые. надо при нажатии button копировать данные из dbgrid1 в dbgrid2. Спасибо заранее!!!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.09.2014, 06:21
Ответы с готовыми решениями:

Перенос данных из одного DbGrid-а в другой
Всем добрый)))) Народ на форме имеются все компоненты по подсоединению с БД и ее отображении... Как сделать так, чтобы при клике по...

Копирование данных с одного листа на другой
Добрый день! Прошу помочь решить такую задачу: - наладить автоматическое копирование данных с одного листа Excel в другой. ...

Копирование данных с одного листа на другой
Помогите, пожалуйста, написать процедуру на нажатие кнопки. Нужно выделить строку, нажать кнопку и данные из ячеек выделенной строки должны...

32
 Аватар для ZfoxAK
670 / 560 / 242
Регистрация: 26.11.2012
Сообщений: 2,191
18.09.2014, 07:46
Цитата Сообщение от Nursss Посмотреть сообщение
dbgrid
Данных не содержит, только отображает.
Необходимо заполнить таблицу в БД заполняй через SQL запрос INSERT INTO.
0
0 / 0 / 0
Регистрация: 01.09.2014
Сообщений: 55
18.09.2014, 08:04  [ТС]
мне надо через дельфи заполнить. через дельфи можно сделать?
0
 Аватар для ZfoxAK
670 / 560 / 242
Регистрация: 26.11.2012
Сообщений: 2,191
18.09.2014, 10:47
Цитата Сообщение от Nursss Посмотреть сообщение
мне надо через дельфи заполнить. через дельфи можно сделать?
Можно! есть наборы компонент для работы с СУБД. Например ADO.
0
0 / 0 / 0
Регистрация: 01.09.2014
Сообщений: 55
18.09.2014, 12:33  [ТС]
Да я поставил ADO и Dbgrid итд. мне нужно код написать чтобы копировать с одной таблицы в другой
0
 Аватар для ZfoxAK
670 / 560 / 242
Регистрация: 26.11.2012
Сообщений: 2,191
18.09.2014, 13:09
ADOQuery позволяет выполнять SQL запросы.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
ADOQuery.close;
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add('INSERT INTO таблица (поле1, поле2, поле3) VALUES (:Param1, :Param2, :Param3)');
ADOQuery.ParamCheck;
DBGrid.DataSource.DataSet.first;
While Not DBGrid.DataSource.DataSet.eof do
begin
ADOQuery.Parameters.ParamByName('Param1').Value:=DBGrid.DataSource.DataSet.FieldByName('Поле1').Value;
ADOQuery.Parameters.ParamByName('Param2').Value:=DBGrid.DataSource.DataSet.FieldByName('Поле2').Value;
ADOQuery.Parameters.ParamByName('Param3').Value:=DBGrid.DataSource.DataSet.FieldByName('Поле3').Value;
ADOQuery.ExecSQL;
ADOQuery.Post;
end;
Дальше напильник ваш!
0
0 / 0 / 0
Регистрация: 01.09.2014
Сообщений: 55
19.09.2014, 06:46  [ТС]
ZfoxAK,
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery1.close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('INSERT INTO jd (name_spr, por_spr, n_pp, nom_frml, k_str1, name_str1, name_str2, ed_izm, z_tm_tg, v_tm_tg, v_tm_pg, prz_tg, v_pm_tg, v_tm_ppg, prz_pm_tg, prz_tm_ppg, prz_tm_pg) VALUES
(:name_spr, :por_spr, :n_pp, :nom_frml, :k_str1, :name_str1, :name_str2, :ed_izm, :z_tm_tg, :v_tm_tg, :v_tm_pg, :prz_tg, :v_pm_tg, :v_tm_ppg, :prz_pm_tg, :prz_tm_ppg, :prz_tm_pg)');
ADOQuery1.ParamCheck;
DBGrid1.DataSource.DataSet.first;
While Not DBGrid2.DataSource.DataSet.eof do
begin
ADOQuery1.Parameters.ParamByName('name_spr').Value:=DBGrid1.DataSource.DataSet.FieldByName('name_spr').Value;
ADOQuery1.Parameters.ParamByName('por_spr').Value:=DBGrid1.DataSource.DataSet.FieldByName('por_spr').Value;
ADOQuery1.Parameters.ParamByName('n_pp').Value:=DBGrid1.DataSource.DataSet.FieldByName('n_pp').Value;
ADOQuery1.Parameters.ParamByName('nom_frml').Value:=DBGrid1.DataSource.DataSet.FieldByName('nom_frml').Value;
ADOQuery1.Parameters.ParamByName('k_str1').Value:=DBGrid1.DataSource.DataSet.FieldByName('k_str1').Value;
ADOQuery1.Parameters.ParamByName('name_str1').Value:=DBGrid1.DataSource.DataSet.FieldByName('name_str1').Value;
ADOQuery1.Parameters.ParamByName('name_str2').Value:=DBGrid1.DataSource.DataSet.FieldByName('name_str2').Value;
ADOQuery1.Parameters.ParamByName('ed_izm').Value:=DBGrid1.DataSource.DataSet.FieldByName('ed_izm').Value;
ADOQuery1.Parameters.ParamByName('z_tm_tg').Value:=DBGrid1.DataSource.DataSet.FieldByName('z_tm_tg').Value;
ADOQuery1.Parameters.ParamByName('v_tm_tg').Value:=DBGrid1.DataSource.DataSet.FieldByName('v_tm_tg').Value;
ADOQuery1.Parameters.ParamByName('v_tm_pg').Value:=DBGrid1.DataSource.DataSet.FieldByName('v_tm_pg').Value;
ADOQuery1.Parameters.ParamByName('prz_tg').Value:=DBGrid1.DataSource.DataSet.FieldByName('prz_tg').Value;
ADOQuery1.Parameters.ParamByName('v_pm_tg').Value:=DBGrid1.DataSource.DataSet.FieldByName('v_pm_tg').Value;
ADOQuery1.Parameters.ParamByName('v_tm_ppg').Value:=DBGrid1.DataSource.DataSet.FieldByName('v_tm_ppg').Value;
ADOQuery1.Parameters.ParamByName('prz_pm_tg').Value:=DBGrid1.DataSource.DataSet.FieldByName('prz_pm_tg').Value;
ADOQuery1.Parameters.ParamByName('prz_tm_ppg').Value:=DBGrid1.DataSource.DataSet.FieldByName('prz_tm_ppg').Value;
ADOQuery1.Parameters.ParamByName('prz_tm_pg').Value:=DBGrid1.DataSource.DataSet.FieldByName('prz_tm_pg').Value;
 
ADOQuery1.ExecSQL;
ADOQuery1.Post;
end;
end;
 
end.
Вот так я написал это правильно?
0
0 / 0 / 0
Регистрация: 01.09.2014
Сообщений: 55
19.09.2014, 06:48  [ТС]
0
0 / 0 / 0
Регистрация: 01.09.2014
Сообщений: 55
22.09.2014, 06:48  [ТС]
помогите пожалуйста во такая ошибка выходить :
[Error] Unit1.pas(38): Unterminated string
[Error] Unit1.pas(39): Missing operator or semicolon
[Error] Unit1.pas(39): Undeclared identifier: 'param2'
[Error] Unit1.pas(39): Expression expected but ':' found
[Error] Unit1.pas(39): Expression expected but ':' found
[Error] Unit1.pas(39): Expression expected but ':' found
[Error] Unit1.pas(39): Expression expected but ':' found
[Error] Unit1.pas(39): Undeclared identifier: 'param11'
[Error] Unit1.pas(39): Expression expected but ':' found
[Error] Unit1.pas(39): Undeclared identifier: 'param14'
[Error] Unit1.pas(39): Expression expected but ':' found
[Error] Unit1.pas(39): Undeclared identifier: 'param17'
[Error] Unit1.pas(40): ')' expected but identifier 'ADOQuery1' found
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
0
 Аватар для ZfoxAK
670 / 560 / 242
Регистрация: 26.11.2012
Сообщений: 2,191
22.09.2014, 07:11
После внесение изменений в таблице БД - необходимо повтороно обратится к этой таблице для чтения данных.

Добавлено через 8 минут
Цитата Сообщение от Nursss Посмотреть сообщение
помогите пожалуйста во такая ошибка выходить :
телепатия отсутствует.
0
0 / 0 / 0
Регистрация: 01.09.2014
Сообщений: 55
22.09.2014, 07:17  [ТС]
а что такое телепатия? помогите я начинающий
0
 Аватар для ZfoxAK
670 / 560 / 242
Регистрация: 26.11.2012
Сообщений: 2,191
22.09.2014, 08:27
Цитата Сообщение от Nursss Посмотреть сообщение
а что такое телепатия?
Телепатия - см на сайте википедии

Код показывай

Добавлено через 5 минут
Цитата Сообщение от Nursss Посмотреть сообщение
ADOQuery1.SQL.Add('INSERT INTO jd (name_spr, por_spr, n_pp, nom_frml, k_str1, name_str1, name_str2, ed_izm, z_tm_tg, v_tm_tg, v_tm_pg, prz_tg, v_pm_tg, v_tm_ppg, prz_pm_tg, prz_tm_ppg, prz_tm_pg) VALUES
(:name_spr, :por_spr, :n_pp, :nom_frml, :k_str1, :name_str1, :name_str2, :ed_izm, :z_tm_tg, :v_tm_tg, :v_tm_pg, :prz_tg, :v_pm_tg, :v_tm_ppg, :prz_pm_tg, :prz_tm_ppg, :prz_tm_pg)');
Замени на
Delphi
1
2
ADOQuery1.SQL.Add('INSERT INTO jd (name_spr, por_spr, n_pp, nom_frml, k_str1, name_str1, name_str2, ed_izm, z_tm_tg, v_tm_tg, v_tm_pg, prz_tg, v_pm_tg, v_tm_ppg, prz_pm_tg, prz_tm_ppg, prz_tm_pg) ');
ADOQuery1.SQL.Add('VALUES (:name_spr, :por_spr, :n_pp, :nom_frml, :k_str1, :name_str1, :name_str2, :ed_izm, :z_tm_tg, :v_tm_tg, :v_tm_pg, :prz_tg, :v_pm_tg, :v_tm_ppg, :prz_pm_tg, :prz_tm_ppg, :prz_tm_pg)');
0
0 / 0 / 0
Регистрация: 01.09.2014
Сообщений: 55
22.09.2014, 11:38  [ТС]
заменил но выходить такое сообщение при нажатии F9 :
0
0 / 0 / 0
Регистрация: 01.09.2014
Сообщений: 55
23.09.2014, 08:38  [ТС]
ZfoxAK, а что за сообщение помоги плиз
0
 Аватар для ZfoxAK
670 / 560 / 242
Регистрация: 26.11.2012
Сообщений: 2,191
23.09.2014, 13:29
Какая цепочка компонент для подключения к БД?
ADOQuery должна подключаться к ADOConnection - у тебя как?
0
0 / 0 / 0
Регистрация: 01.09.2014
Сообщений: 55
23.09.2014, 14:11  [ТС]
ZfoxAK, да у меня ADOQuery подключен через ADOConnection. ошибки нету но когда нажимаю F9 выходить сообщение. В чем проблема?

Добавлено через 30 минут
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
procedure TForm1.Button1Click(Sender: TObject);
begin      
Table1.Open; ADOTable1.Open;
Table1.First;
 
While Not Table1.eof do  
begin
ADOTable1.Append;
ADOTable1.Edit;
ADOTable1.FieldByName('name_spr').AsString:=Table1.fieldbyname('name_spr').AsString;
ADOTable1.FieldByName('por_spr').AsString:=Table1.fieldbyname('por_spr').AsString;
ADOTable1.FieldByName('n_pp').AsString:=Table1.fieldbyname('n_pp').AsString;
ADOTable1.FieldByName('nom_frml').AsString:=Table1.fieldbyname('nom_frml').AsString;
ADOTable1.FieldByName('k_str1').AsString:=Table1.fieldbyname('k_str1').AsString;
ADOTable1.FieldByName('name_str1').AsString:=Table1.fieldbyname('name_str1').AsString;
ADOTable1.FieldByName('name_str2').AsString:=Table1.fieldbyname('name_str2').AsString;
ADOTable1.FieldByName('ed_izm').AsString:=Table1.fieldbyname('ed_izm').AsString;
ADOTable1.FieldByName('z_tm_tg').AsString:=Table1.fieldbyname('z_tm_tg').AsString;
ADOTable1.FieldByName('v_tm_tg').AsString:=Table1.fieldbyname('v_tm_tg').AsString;
ADOTable1.FieldByName('name_spr').AsString:=Table1.fieldbyname('v_tm_pg').AsString;
ADOTable1.FieldByName('prz_tg').AsString:=Table1.fieldbyname('prz_tg').AsString;
ADOTable1.FieldByName('v_pm_tg').AsString:=Table1.fieldbyname('v_pm_tg').AsString;
ADOTable1.FieldByName('v_tm_ppg').AsString:=Table1.fieldbyname('v_tm_ppg').AsString;
ADOTable1.FieldByName('prz_pm_tg').AsString:=Table1.fieldbyname('prz_pm_tg').AsString;
ADOTable1.FieldByName('prz_tm_ppg').AsString:=Table1.fieldbyname('prz_tm_ppg').AsString;
ADOTable1.FieldByName('prz_tm_pg').AsString:=Table1.fieldbyname('prz_tm_pg').AsString;
ADOTable1.Post;
ADOTable1.Next;
end;
вот так пробовал писать но по любому тот же сообщение выходить

Добавлено через 1 минуту
ZfoxAK, здесь я без ADOQuery писал
0
 Аватар для ZfoxAK
670 / 560 / 242
Регистрация: 26.11.2012
Сообщений: 2,191
24.09.2014, 05:16
Скорее всего ADO и BDE один драйвер пытаются загрузить. И поэтому конфликт идет. А отказатся от BDE никак и все сделать с ADO?
0
0 / 0 / 0
Регистрация: 01.09.2014
Сообщений: 55
24.09.2014, 06:14  [ТС]
ZfoxAK, Мне надо данные из dbf файла копировать в базу данных которая созданная на sql-servere. а по другому можно решить эту задачу?
0
 Аватар для ZfoxAK
670 / 560 / 242
Регистрация: 26.11.2012
Сообщений: 2,191
24.09.2014, 06:26
подключение dbf с использованием ADO
Delphi
1
2
3
4
5
6
7
8
9
10
ADOTable1.Active:=false;
ADOConnection1.Connected:=false;
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source="' +
  FolderPath + '";Extended Properties="DBASE IV;";"';
// здесь FolderPath путь до папки с файлом
 ADOConnection1.LoginPrompt:=false;
 ADOConnection1.Mode:=cmReadWrite;
 ADOConnection1.Connected:=true;
 ADOTable1.TableName:='имя_файл без расширения'; 
 ADOTable1.Active:=true;
0
0 / 0 / 0
Регистрация: 01.09.2014
Сообщений: 55
24.09.2014, 07:36  [ТС]
ZfoxAK, всё последний вопрос дальше сам разбираться буду. вот это объясни ADOConnection1.ConnectionString:='Provid er=Microsoft.Jet.OLEDB.4.0ata Source="' +
FolderPath + '";Extended Properties="DBASE IV;";"'; где надо писать путь? у меня путь такая до dbf файла C:\nursultan
если я этот путь вместо FolderPath ставлю то ошибка выходить на букву С
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.09.2014, 07:36
Помогаю со студенческими работами здесь

Копирование данных с одного листа на другой
Народ у меня такая проблема то что мне надо создавать документ, и даннве с 1 листа должны копироваться на другом как мне проще слелать это...

Копирование данных с одного листа на другой
Здравствуйте! Помогите, пожалуйста, профану в программировании написать процедурку копирования с одного листа на другой. На одном листе...

Копирование данных с одного листа на другой
Добрый день. Есть такая проблемка. В данном коде появляется ошибка при вставке данных из одной книги в другую Method ‘Paste’ of object...

Копирование данных с одного листа на другой
Доброго времени суток. Помогите, пожалуйста придумать макрос для копирования. Имеется два листа. Нужно создать макрос для копирования...

Копирование данных из одного массива в другой
Написать программу, в которой создаются два массива типа char. В одном из массивов должен быть любой инициализированный текст, а в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru