Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.14;
Скачать: CL | DM;

Вниз

Копирование БД и переименовка полей.   Найти похожие ветки 

 
Scorpio ©   (2005-05-06 10:54) [0]

Здравствуйте мастера.
Помогите мне, а то моя программа отказывается соединять базу, и пишет "Нельзя определить поле более одного раза". Я уже скопировал одну базу ч/з:

try
       Streaml := TFileStream.Create(pat+"\lnk.dbf", fmOpenRead);
       Stream2 := TFileStream.Create(pat+"\lnk1.dbf", fmCreate);
       Stream2.Seek(0, soFromEnd);
       Stream2.CopyFrom(Streaml, Streaml.Size);
    finally
           Stream2.Free;
           Streaml.Free;
    end;

А как мне еще сделать переименование имен полей сдесь, может хоть в этом случае будет работать.


 
Anatoly Podgoretsky ©   (2005-05-06 11:06) [1]

А где здесь соединение, вижу только копирование файла.


 
Desdechado ©   (2005-05-06 11:11) [2]

у тебя случайно в DBF нет одноименных полей?
а то Clipper, например, позволяет создавать таблицу с несколькими одноименными полями


 
Scorpio ©   (2005-05-06 11:31) [3]

У меня есть 4 базы, za.dbf, de.dbf, r2.dbf, lnk.dbf.

мне нужно соеденить базу za c r2

пишу первый запрос

select * into za2 from za,de,lnk where za.ni=lnk.rec1 and lnk.idl=7 and lnk.rec2=de.ni

этот запрос проходит, там еще некоторые условия стоят, но это условие соединения.
теперь нужно соеденить полученную базу с r2

select * into za2n2 from za2,r2,lnk where za2.ni=lnk.rec1 and lnk.idl=20 and lnk.rec2=r2.ni

вот в момент этого она мне и пишет ошибку, из - за базы lnk, т.к. я ее дважды открываю, уже скопировал с другим именем, все равно ошибка осталась, вот и хочу попробовать сделать переименование полей.


 
Anatoly Podgoretsky ©   (2005-05-06 11:43) [4]

Это не соединение, а вставка записей в другую таблицу. И как то это совсем не вяжется с первым вопросом, где копировались файлы.


 
Scorpio ©   (2005-05-06 11:52) [5]

Удалено модератором
Примечание: Дубль


 
Scorpio ©   (2005-05-06 11:55) [6]

перед выполненем первого SELECT.
Мне нужно мне нужно связать данный с базы za с данными с базы r2, используя промежуточную de, и LNK - сдесь находятся связи с различными базами.


 
Anatoly Podgoretsky ©   (2005-05-06 12:02) [7]

Смотри справку по гетерогенным запросам в БДЕ


 
Desdechado ©   (2005-05-06 12:40) [8]

А одним запросом слабо сделать?
insert into xxx
select .... from lnk k1, lnk k2, ... where ...


 
ANB ©   (2005-05-06 12:54) [9]


> select * into za2n2 from za2,r2,lnk where za2.ni=lnk.rec1
> and lnk.idl=20 and lnk.rec2=r2.ni
По моему здесь проблема в дублировании полей из за join + *.
Попробуй явно указать в запросе нужные тебе поля и у одинаковых присвоить алиасы через AS



Страницы: 1 вся ветка

Текущий архив: 2005.06.14;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.025 c
3-1115179948
IBNovice
2005-05-04 08:12
2005.06.14
Помогите с запросом


6-1111736034
Илья
2005-03-25 10:33
2005.06.14
Передача файлов по сети


1-1116926464
Pavelkq
2005-05-24 13:21
2005.06.14
Передача имени массива в качестве параметра


4-1114382085
Кайфолом
2005-04-25 02:34
2005.06.14
Как обработать системные сообщения Формы ?


9-1110621860
Andrewk88
2005-03-12 13:04
2005.06.14
GLScene