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

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

18.09.2014, 06:21. Показов 5088. Ответов 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
24.09.2014, 07:50
Студворк — интернет-сервис помощи студентам
Delphi
1
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source="C:\nursultan\";Extended Properties="DBASE IV;";"';
Так попробуй
0
0 / 0 / 0
Регистрация: 01.09.2014
Сообщений: 55
24.09.2014, 08:55  [ТС]
ZfoxAK, Спасибо брат за помощь, выручил!!!
0
 Аватар для ZfoxAK
670 / 560 / 242
Регистрация: 26.11.2012
Сообщений: 2,191
24.09.2014, 09:20
На здоровье Nursss
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
24.09.2014, 10:29
Цитата Сообщение от Nursss Посмотреть сообщение
ошибка выходить на букву С
Сошибка ?)
0
0 / 0 / 0
Регистрация: 01.09.2014
Сообщений: 55
30.09.2014, 07:12  [ТС]
ZfoxAK, через ADOQuery хочу попробовать. Как надо правильно написать parameter? куда надо написать?

Добавлено через 10 минут
ZfoxAK, у меня есть такие таблицы : (name_spr, por_str, 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). как надо задать parameter? по моему надо записывать в ADOQuery в свойство SQL?
0
 Аватар для ZfoxAK
670 / 560 / 242
Регистрация: 26.11.2012
Сообщений: 2,191
30.09.2014, 07:46
Цитата Сообщение от Nursss Посмотреть сообщение
записывать в ADOQuery в свойство SQL?
Да.
Типо
Delphi
1
2
3
4
5
6
ADOQuery.Close; // убедится что компонента не активна
ADOQuery.SQL.Clear; // очистка от старых запросов
ADOQuery.SQL.Add('SQL запрос или его часть'); // добавление нового или части
ADOQuery.ParamCheck; // проверка на наличие парметров
ADOQuery.Parameters.ParamByName('Field1').Value:=значение;
ADOQuery.Open // выполнить запрос типа SELECT
В упрощенном варианте запрос выглядит так
SQL
1
SELECT * FROM Имя_Таблицы WHERE Field1= :Field1
Здесь :Field1- параметр, имя параметра (Field) без двоеточия
Для обращении к нескольким связанным таблицам читайте по SQL запросам и явные и не явные соединения таблиц
0
0 / 0 / 0
Регистрация: 01.09.2014
Сообщений: 55
30.09.2014, 08:50  [ТС]
Вот так я написал :
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
procedure TForm1.Button2Click(Sender: TObject);
begin
ADOQuery1.close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('INSERT INTO òàáëèöà (name_spr, por_str, 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 (:Param1, :Param2, :Param3)');
ADOQuery1.ParamCheck;
DBGrid2.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_str').Value:=DBGrid1.DataSource.DataSet.FieldByName('por_str').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_tm_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.Open;
ADOQuery1.ExecSQL;
ADOQuery1.Post;
end;
end;
end.
а на ADOQuery1 в свойство SQL вот так написал :
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SELECT * FROM jd WHERE name_spr= :name_spr 
SELECT * FROM jd WHERE por_str= :por_str
SELECT * FROM jd WHERE n_pp=:n_pp 
SELECT * FROM jd WHERE nom_frml=:nom_frml 
SELECT * FROM jd WHERE k_str1=:k_str1
SELECT * FROM jd WHERE name_str1=:name_str1
SELECT * FROM jd WHERE name_str2=:name_str2
SELECT * FROM jd WHERE ed_izm=:ed_izm
SELECT * FROM jd WHERE z_tm_tg=:z_tm_tg
SELECT * FROM jd WHERE v_tm_tg=:v_tm_tg 
SELECT * FROM jd WHERE v_tm_pg=:v_tm_pg 
SELECT * FROM jd WHERE prz_tg=:prz_tg 
SELECT * FROM jd WHERE v_pm_tg=:v_pm_tg 
SELECT * FROM jd WHERE v_tm_ppg=:v_tm_ppg 
SELECT * FROM jd WHERE prz_pm_tg=:prz_pm_tg 
SELECT * FROM jd WHERE prz_tm_ppg=:prz_tm_ppg 
SELECT * FROM jd WHERE prz_tm_pg=:prz_tm_pg
SQL active-true работает все правильно.
но выходить такое сообщение : ADOQuery1: Parameter 'name_spr' not found. в чем проблема?
0
 Аватар для ZfoxAK
670 / 560 / 242
Регистрация: 26.11.2012
Сообщений: 2,191
30.09.2014, 09:02
параметр в запросе должен соответствовать параметру в коде. в запросе указан параметр
Цитата Сообщение от Nursss Посмотреть сообщение
Param1
а где в запросе указан параметр?
Цитата Сообщение от Nursss Посмотреть сообщение
name_spr
Цитата Сообщение от Nursss Посмотреть сообщение
ADOQuery1.Open;
Используется для SELECT зачем в данном случае он нужен?

Добавлено через 2 минуты
Для офрмления текста запроса или кода программы есть специальные теги их необходимо использовать при написании топика!
0
0 / 0 / 0
Регистрация: 01.09.2014
Сообщений: 55
30.09.2014, 11:27  [ТС]
ZfoxAK, да переписал как ты сказал. теперь выходить такое сообщение : ADOQuery1ataSet not in edit or insert mode.process stoped

Добавлено через 48 секунд
ZfoxAK, да переписал как ты сказал. теперь выходить такое сообщение : ADOQuery1 : DataSet not in edit or insert mode.process stoped
0
 Аватар для ZfoxAK
670 / 560 / 242
Регистрация: 26.11.2012
Сообщений: 2,191
30.09.2014, 12:00
Nursss, разберись со своим кодом т.к. что он делает для тебя загадка. Так же почитай по SQL запросы потому как это
Цитата Сообщение от Nursss Посмотреть сообщение
ADOQuery1.SQL.Add('INSERT INTO òàáëèöà (name_spr, por_str, 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 (:Param1, :Param2, :Param3)');
бред. Т.к.
SQL
1
INSERT INTO Таблица(Поле1, Поле2, Поле3) VALUES (Значение1, Значение2, Значение3)
Цитата Сообщение от Nursss Посмотреть сообщение
а на ADOQuery1 в свойство SQL вот так написал :
SELECT * FROM jd WHERE name_spr= :name_spr
SELECT * FROM jd WHERE por_str= or_str
тем более это.
0
0 / 0 / 0
Регистрация: 01.09.2014
Сообщений: 55
30.09.2014, 12:13  [ТС]
ZfoxAK, вот так я написал :
Delphi
1
2
ADOQuery1.SQL.Add ('INSERT INTO jd (name_spr, por_str, 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_str, :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)');
код в sql
SQL
1
2
SELECT * FROM jd WHERE name_spr= :name_spr 
SELECT * FROM jd WHERE por_str= or_str
если вот так писать то он работает и отображается в свойстве parameter.
a если так :
SQL
1
INSERT INTO jd (name_spr, por_str, 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_str, :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
 Аватар для ZfoxAK
670 / 560 / 242
Регистрация: 26.11.2012
Сообщений: 2,191
30.09.2014, 12:44
SQL
1
2
INSERT INTO jd (name_spr, por_str, 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_str, :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)
Добавлено через 2 минуты
Для оформления текста запроса или кода программы есть специальные теги их необходимо использовать при написании топика!
Будешь дальше вываливать в таком виде - ищи помощи у других....
0
0 / 0 / 0
Регистрация: 01.09.2014
Сообщений: 55
30.09.2014, 14:37  [ТС]
ZfoxAK, ладно спасибо большое
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.09.2014, 14:37
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Новые блоги и статьи
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения Продолжаю серию постов о дискретно-событийной модели рабочего. . .
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru