|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
16.10.2007, 13:27 | #11 |
Форумчанин
Регистрация: 06.09.2007
Сообщений: 908
|
Непонял...
table2 - это же и есть имя таблицы! |
16.10.2007, 22:23 | #12 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Цитата:
Пусть ваши таблицы в базе называются FIRMS1.DB и FIRMS2.DB. Вы сразу резко снизите геморроидальность отладки программы... И упаси вас господь применять ключевые слова в наименованиях полей - это будет такая неразбериха, что не только БД, но и вы голову сломаете... |
|
17.10.2007, 12:13 | #13 |
Форумчанин
Регистрация: 06.09.2007
Сообщений: 908
|
Нет! Написав, что я использую эти имена таблиц в качестве пимера, я имел ввиду, что в качестве примера здесь на форуме, а не у себя!
Но не в этом суть. Непонятно, почему при нажатии кнопки, компилятор ругается на ту строку: ADOQuery1.SQL.Text:='SELECT * FROM table2'; P.S.: в место table2 я ставлю нормальное имя таблицы. |
17.10.2007, 15:37 | #14 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Цитата:
Оператор-то самый примитивный. Не понимаю, на что тут ругаться компилятору? В принципе, вы можете написать: ADOQuery1.SQL.Text:='ВАСЯ, ШЕЛ БЫ ТЫ В БАНЮ!'; Компилятору это должно быть по барабану (это же просто стринговая переменная), а вот БД при исполнении этого запроса "выпадет в осадок"... Скорее всего, у вас ошибка в предыдущей или последующей строке, но вы, как Штирлиц... |
|
18.10.2007, 11:20 | #15 |
Форумчанин
Регистрация: 06.09.2007
Сообщений: 908
|
Я пробовал и со звездочкой и в место звездочки ставил имена полей. Код рабочий, это точно! Я в программе Visual FoxPro, в окне Сommand написав код:
insert into FIRM1 (name1, adress1) select name2, adress2 from firm2 все работает. Видимо проблема в связи SQL с Delphi. Попробуйте, пожалуйста, разъяснить, что я не так делаю. А делаю я так: 1. Бросаю на форму компонент ADOConnection, через него посоединяюсь к БД. В свойстве Connect выставляю true. 2. Бросаю на форму компонент ADOQuery. В свойстве connection выбираю ADOConnection1, а в свойстве SQL написал: select * from firm1 Затем в свойстве Active выставляю true 3. Бросаю на форму компонент DataSource. В свойстве DataSet выставляю ADOQuery1 4. Бросаю на форму компонент DBGrid. В свойстве DataSource выставляю DataSource1 5. Бросаю на форму кнопку и по ее ножатию пишу: procedure TForm1.Button1Click(Sender: TObject); begin ADOQuery1.Active:=false; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('INSERT INTO FIRM1 (NAME_FIRM, ADRESS )'); ADOQuery1.SQL.Add('SELECT NAME, ADDRESS'); ADOQuery1.SQL.Add('FROM firm'); ADOQuery1.ExecSQL; ADOQuery1.Active:=true; end; Вот собственно и все. Подскажите, что я не так делаю. Последний раз редактировалось фЁдОр; 18.10.2007 в 11:37. |
18.10.2007, 11:43 | #16 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Цитата:
Ваш запрос НЕ СОЗДАЕТ РЕЗУЛЬТИРУЮЩЕГО НАБОРА ДАННЫХ, т.е., попросту говоря, когда вы в конце концов делаете ADOQuery1.Active:=true; , DBGrid сходит с ума - "отобрази то, не знаю что..." Вам перед этой строкой нужно вставить: ADOQuery1.SQL.Text:='select * from firm1'; |
|
18.10.2007, 13:05 | #17 |
Форумчанин
Регистрация: 06.09.2007
Сообщений: 908
|
Фантастика!!! mihali4, спасибо Вам большое! Наконец-то получилось. Вот только мне нужно проделать такую же операцию, но с разными форматами таблиц. Но все равно, то, чему Вы меня научили проделать перемещение данных между таблицами одно формата, тоже очень важно для меня. Еще раз спасибо!
|
06.01.2008, 19:10 | #18 |
Пользователь
Регистрация: 14.02.2007
Сообщений: 28
|
я сделал так :
procedure TForm1.BitBtn1Click(Sender: TObject); begin Table3.insert; Table3.FieldByName('InvenNom').AsSt ring :=Table2.FieldByName('InvenNom').As String; Table3.FieldByName('NazvKn').AsStri ng :=Table2.FieldByName('NazvKn').AsSt ring; Table3.FieldByName('ID_Chit').AsStr ing :=Table2.FieldByName('ID_Chit').AsS tring; Table3.FieldByName('ID_Bibl').AsStr ing :=Table2.FieldByName('ID_Bibl').AsS tring; Table3.Post; end; |
06.01.2008, 19:27 | #19 |
Форумчанин
Регистрация: 06.09.2007
Сообщений: 908
|
ivp88 - немножко темой ошиблись , но ничего. Работает, нормально?
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
копирование данных из таблицы в таблицу | Sack | Microsoft Office Access | 1 | 16.09.2008 05:59 |
Перенос данных из одной книги со многих листов в другую | gavrylyuk | Microsoft Office Excel | 34 | 20.07.2008 21:39 |
пересылка данных из одной сети в другую | AIst | Работа с сетью в Delphi | 5 | 08.07.2008 23:50 |
Копирование таблиц из одной базы в другую | KuH | БД в Delphi | 7 | 27.09.2007 15:18 |
Отправлять данные из одной таблицы в другую | Таня84 | БД в Delphi | 14 | 28.04.2007 23:23 |