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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 16.10.2007, 13:27   #11
фЁдОр
Форумчанин
 
Аватар для фЁдОр
 
Регистрация: 06.09.2007
Сообщений: 908
По умолчанию

Непонял...
table2 - это же и есть имя таблицы!
фЁдОр вне форума
Старый 16.10.2007, 22:23   #12
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Эти имена таблиц, я для примера привел, что бы как можно было понятнее изъяснить
Ваши слова? Если они так же записаны и в базе (т.е. table1.db и table2.db) то это - гарантия взаимонепонимания между вами и СУБД. Еще раз повторюсь, поскольку вы, очевидно, не обратили внимания - НЕ РЕКОМЕНДУЕТСЯ В КАКИХ-ЛИБО НАИМЕНОВАНИЯХ ИСПОЛЬЗОВАТЬ КЛЮЧЕВЫЕ СЛОВА! А слово TABLE именно таковым и является!
Пусть ваши таблицы в базе называются FIRMS1.DB и FIRMS2.DB.
Вы сразу резко снизите геморроидальность отладки программы...
И упаси вас господь применять ключевые слова в наименованиях полей - это будет такая неразбериха, что не только БД, но и вы голову сломаете...
mihali4 вне форума
Старый 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
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от фЁдОр Посмотреть сообщение
Нет! Написав, что я использую эти имена таблиц в качестве пимера, я имел ввиду, что в качестве примера здесь на форуме, а не у себя!
Но не в этом суть. Непонятно, почему при нажатии кнопки, компилятор ругается на ту строку:
ADOQuery1.SQL.Text:='SELECT * FROM table2';
P.S.: в место table2 я ставлю нормальное имя таблицы.
Попробуйте вместо звездочки выбрать какое-нибудь одно поле... или пару полей...
Оператор-то самый примитивный. Не понимаю, на что тут ругаться компилятору? В принципе, вы можете написать:
ADOQuery1.SQL.Text:='ВАСЯ, ШЕЛ БЫ ТЫ В БАНЮ!';
Компилятору это должно быть по барабану (это же просто стринговая переменная), а вот БД при исполнении этого запроса "выпадет в осадок"...
Скорее всего, у вас ошибка в предыдущей или последующей строке, но вы, как Штирлиц...
mihali4 вне форума
Старый 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
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Вот собственно и все. Подскажите, что я не так делаю.
Так вроде уже обсуждали это.
Ваш запрос НЕ СОЗДАЕТ РЕЗУЛЬТИРУЮЩЕГО НАБОРА ДАННЫХ, т.е., попросту говоря, когда вы в конце концов делаете
ADOQuery1.Active:=true;
, DBGrid сходит с ума - "отобрази то, не знаю что..."
Вам перед этой строкой нужно вставить:
ADOQuery1.SQL.Text:='select * from firm1';
mihali4 вне форума
Старый 18.10.2007, 13:05   #17
фЁдОр
Форумчанин
 
Аватар для фЁдОр
 
Регистрация: 06.09.2007
Сообщений: 908
По умолчанию

Фантастика!!! mihali4, спасибо Вам большое! Наконец-то получилось. Вот только мне нужно проделать такую же операцию, но с разными форматами таблиц. Но все равно, то, чему Вы меня научили проделать перемещение данных между таблицами одно формата, тоже очень важно для меня. Еще раз спасибо!
фЁдОр вне форума
Старый 06.01.2008, 19:10   #18
ivp88
Пользователь
 
Регистрация: 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;
ivp88 вне форума
Старый 06.01.2008, 19:27   #19
фЁдОр
Форумчанин
 
Аватар для фЁдОр
 
Регистрация: 06.09.2007
Сообщений: 908
По умолчанию

ivp88 - немножко темой ошиблись , но ничего. Работает, нормально?
фЁдОр вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
копирование данных из таблицы в таблицу 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