![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Копирование БД и переименовка полей. [D7, dBase, FoxPro]
Scorpio © (2005-05-06 10:54:00)Здравствуйте мастера.
Помогите мне, а то моя программа отказывается соединять базу, и пишет "Нельзя определить поле более одного раза". Я уже скопировал одну базу ч/з:
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;
А как мне еще сделать переименование имен полей сдесь, может хоть в этом случае будет работать.
ANB (2005-05-06 12:54:00) [1]
> select * into za2n2 from za2,r2,lnk where za2.ni=lnk.rec1
> and lnk.idl=20 and lnk.rec2=r2.ni
По моему здесь проблема в дублировании полей из за join + *.
Попробуй явно указать в запросе нужные тебе поля и у одинаковых присвоить алиасы через AS
Desdechado (2005-05-06 12:40:00) [2]А одним запросом слабо сделать?
insert into xxx
select .... from lnk k1, lnk k2, ... where ...
Anatoly Podgoretsky (2005-05-06 12:02:00) [3]Смотри справку по гетерогенным запросам в БДЕ
Scorpio (2005-05-06 11:55:00) [4]перед выполненем первого SELECT.
Мне нужно мне нужно связать данный с базы za с данными с базы r2, используя промежуточную de, и LNK - сдесь находятся связи с различными базами.
Scorpio (2005-05-06 11:52:00) [5]Удалено модератором
Примечание: Дубль
Anatoly Podgoretsky (2005-05-06 11:43:00) [6]Это не соединение, а вставка записей в другую таблицу. И как то это совсем не вяжется с первым вопросом, где копировались файлы.
Scorpio (2005-05-06 11:31:00) [7]У меня есть 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, т.к. я ее дважды открываю, уже скопировал с другим именем, все равно ошибка осталась, вот и хочу попробовать сделать переименование полей.
Desdechado (2005-05-06 11:11:00) [8]у тебя случайно в DBF нет одноименных полей?
а то Clipper, например, позволяет создавать таблицу с несколькими одноименными полями
Anatoly Podgoretsky (2005-05-06 11:06:00) [9]А где здесь соединение, вижу только копирование файла.