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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2007, 16:57   #1
KuH
 
Регистрация: 14.09.2007
Сообщений: 5
По умолчанию Копирование таблиц из одной базы в другую

Помогите, а то я уже третий день голову ломаю. Некоторые данные из одной таблицы должны выгружаться в файл(работает). Потом данные из этого файла должны загрузиться в другую БД. Но при выполнении циклического считывания из файла и записи в таблицу выскакивает такая ошибка:
"ORA-00936:missing expression". вот код:
Цитата:
procedure TForm2.btnUploadClick(Sender: TObject);
var
cur_item1,cur_item2: string;
begin
ADOQueryRead.LoadFromFile('c:\asd.t xt');
ADOQueryWrite.LoadFromFile('c:\asd. txt');
ADOQueryRead.First;
ADOQueryWrite.First;
ADOQueryWrite.SQL.Add('DELETE from IDS');
ADOQueryWrite.ExecSQL;
ADOQueryWrite.SQL.Clear;

while (ADOQueryRead.eof=false) do
begin
cur_item1:=ADOQueryRead.FieldValues['C_PERS_NUM'];
cur_item2:=ADOQueryRead.FieldValues['C_DOC_STATUS'];
ADOQueryWrite.SQL.Add('INSERT INTO IDS VALUES ('+cur_item1+','+cur_item2+')');
ADOQueryWrite.ExecSQL;
ADOQueryWrite.SQL.Clear;
ADOQueryRead.next;
end;

end;
Заранее очень благодарен.
KuH вне форума Ответить с цитированием
Старый 20.09.2007, 15:34   #2
KuH
 
Регистрация: 14.09.2007
Сообщений: 5
По умолчанию

Хорошо, переформулирую вопрос: каким образом мне скопировать данные одной таблицы в другую?
KuH вне форума Ответить с цитированием
Старый 20.09.2007, 16:37   #3
Pitbull
детский тренер
Форумчанин
 
Аватар для Pitbull
 
Регистрация: 08.06.2007
Сообщений: 532
По умолчанию

insert into Table1 select * from table2
если одинаковая структура....
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
Pitbull вне форума Ответить с цитированием
Старый 20.09.2007, 18:46   #4
KuH
 
Регистрация: 14.09.2007
Сообщений: 5
По умолчанию

Неа, они у меня в разных базах. Мне надо из одной базы перекинуть инфу в другую. Я использую Оракл 10( который бесплатный). Когда запрос INSERT выполняеться один раз - все нормально, а когда много раз в цикле - компилятор выдает ошибку - ---------------------------
Debugger Exception Notification
---------------------------
Project UpdateDB.exe raised exception class EOleException with message 'ORA-00933: SQL command not properly ended'.
---------------------------


Текущий код проги:
Цитата:
unit Main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB;
type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
ADOQueryWrite: TADOQuery;
btnLoadDB: TButton;
procedure btnLoadDBClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btnLoadDBClick(Sender: TObject);
var
read_string, cur_item1, cur_item2: string;
I: Integer;
begin
assignfile(Input, 'c:\asd2.txt');
reset(input);
AdoQueryWrite.sql.clear;
ADOQueryWrite.SQL.add('DELETE FROM IDS');
ADOQueryWrite.ExecSQL;
AdoQueryWrite.sql.clear;
while eof(input)=false do
begin
Readln(input, cur_item1);
ReadLn(input, cur_item2);
if cur_item1='###' then
begin
break;
end
else
begin
ADOQueryWrite.SQL.Add('INSERT INTO IDS VALUES ('+cur_item1+', '+cur_item2+')');
end;
end;
ADOQueryWrite.ExecSQL;
closefile(input);
end;
end.
KuH вне форума Ответить с цитированием
Старый 24.09.2007, 12:51   #5
А. Долматов
Форумчанин
 
Аватар для А. Долматов
 
Регистрация: 15.02.2007
Сообщений: 183
По умолчанию

Мне кажется, что просто таблица находится в состоянии записи и запрос является не законченым поэтому. Надо после каждой вставки в таблицу её закрывать.
Знать все невозможно, в силу того, что жить бы стало неинтересно.
А. Долматов вне форума Ответить с цитированием
Старый 24.09.2007, 14:31   #6
KuH
 
Регистрация: 14.09.2007
Сообщений: 5
По умолчанию

Закрывать соединение?
KuH вне форума Ответить с цитированием
Старый 24.09.2007, 14:40   #7
А. Долматов
Форумчанин
 
Аватар для А. Долматов
 
Регистрация: 15.02.2007
Сообщений: 183
По умолчанию

Нет. Таблицу.
Знать все невозможно, в силу того, что жить бы стало неинтересно.
А. Долматов вне форума Ответить с цитированием
Старый 27.09.2007, 15:18   #8
KuH
 
Регистрация: 14.09.2007
Сообщений: 5
По умолчанию

Все, Всем спасибо - проблема решена. Оказались не совместимые поля у таблиц.
KuH вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Импорт записей из одной Бд в другую hemo Microsoft Office Access 6 08.09.2008 08:57
Конвертация одной БД в другую Старовъръ БД в Delphi 2 19.08.2008 12:26
Копирование данных из одной таблицы в другую! фЁдОр БД в Delphi 18 06.01.2008 19:27
Отправлять данные из одной таблицы в другую Таня84 БД в Delphi 14 28.04.2007 23:23