Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.043 c
4-1114194670
Merl
2005-04-22 22:31
2005.06.14
Растягивание формы


14-1116935671
Alexander Panov
2005-05-24 15:54
2005.06.14
Абонентам обычных телефонов с 1 июля придется платить за звонки н


3-1115460568
Mr.F
2005-05-07 14:09
2005.06.14
Построение дерева из базы данных


3-1115374915
vic1
2005-05-06 14:21
2005.06.14
текст в ADODataset


1-1117517605
Grach
2005-05-31 09:33
2005.06.14
Сжатие файлов (преобразование Фурье)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский