Форум: "Базы";
Текущий архив: 2002.12.23;
Скачать: [xml.tar.bz2];
ВнизНе работает SELECT ... INTO TABLE в ADOQuery Найти похожие ветки
← →
Zn (2002-12-04 09:52) [0]Ув. мастера! Подскажите, почему не создает таблицу запрос типа SELECT t1.Id, t1.Name FROM t1 INTO TABLE t2 в ADOQuery. Выполняю его через ExecSQL. В DBGrid отображается. Что я не сделал?Работаю с dbf-файлами.
← →
stone (2002-12-04 10:00) [1]SELECT t1.Id, t1.Name INTO TABLE t2 FROM t1
← →
Zn (2002-12-04 10:09) [2]<stone © (04.12.02 10:00)
От перестановки слагаемых сумма не изменилась. Или это была шутка?
← →
stone (2002-12-04 10:20) [3]2 Zn (04.12.02 10:09)
Нет, не шутка. Возможно просто Local SQL (судя по dBase, FoxPro) в отличии от T-SQL, PL/SQL и т.д. не поддерживает таких конструкций
← →
Zn (2002-12-04 10:29) [4]<stone © (04.12.02 10:20)
Тогда почему не ругается, а нормально проглатывает? В Query ругался.
← →
ЮЮ (2002-12-04 10:32) [5]> Выполняю его через ExecSQL. В DBGrid отображается
Как, интересно, может отображаться запрос, выполняемый ч/з ExecSQL?
Еще вариант
INSERT INTO t2(ID, NAME)
SELECT ID, NAME
FROM t1 WHERE ...
← →
stone (2002-12-04 10:37) [6]ЮЮ © (04.12.02 10:32) прав.
select ... into Table2 from Table1 создает таблицу Table2 на соснове выборки из Table1
если просто надовыбрать данные в существующую таблицу, то -> ЮЮ © (04.12.02 10:32)
← →
ЮЮ (2002-12-04 10:45) [7]Кстати, о конструкции SELECT ... INTO в Local SQL Help нет ни слова
← →
Zn (2002-12-04 10:59) [8]
> ЮЮ © (04.12.02 10:32)
> > Выполняю его через ExecSQL. В DBGrid отображается
> Как, интересно, может отображаться запрос, выполняемый ч/з
> ExecSQL?
Тем не менее. Для DBGrid указываю нужный DataSource - и видно результат. А через ButtonClick запускаю ExecSQL (надеясь, что создаст таблицу). А таблицу действительно нужно создать.
← →
sniknik (2002-12-04 11:27) [9]100% работает
SELECT ID_EVENT,NAME INTO AN FROM AN2
подключение
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\;Extended Properties=dBase IV;Persist Security Info=False
зачем ADOQuery? есть замечетелный компонент для невозв.датасет комманд ADOCommand.
← →
Zn (2002-12-04 12:04) [10]
> sniknik © (04.12.02 11:27)
> Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\;Extended
> Properties=dBase IV;Persist Security Info=False
Ваша строка не работает. Я использую
Provider=MSDASQL;Persist Security Info=False;Mode=ReadWrite;Extended Properties="Driver={Microsoft Visual FoxPro Driver};UID=;SourceDB=D:\;SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=RUSSIAN;Null=Yes;Deleted=Yes;"
Здесь что-то не так?
← →
sniknik (2002-12-04 12:54) [11]моя строка работает, у вас просто jet не стоит. :-)
> Здесь что-то не так?
несомненно! драйвер! Visual FoxPro Driver (он вообще с заворотами) и не только в этом, индексы например принципиально не делает :-(.
намаешся ты с ним. сам посмотри в хелпе DRVVFP.HLP в WinNt\System32. (обрати особое внимание на раздел "Unsupported FoxPro Commands and Functions")
лутше поставь Jet или (возможно у тебя стоит но версией ниже OLEDB.3.5 к примеру, проверь)
попробуй другую строку (MS dBase Driver по умолчанию с 98 и выше ставится)
Provider=MSDASQL.1;Persist Security Info=False;Mode=ReadWrite;Extended Properties="DRIVER={Microsoft dBase Driver (*.dbf)};DBQ=D:\;DefaultDir=D:\;DriverId=533;FIL=dBase 5.0;MaxBufferSize=2048;PageTimeout=5;"
← →
Zn (2002-12-04 15:02) [12]
> sniknik © (04.12.02 12:54)
Jet у меня стоит 4.0. Кстати, он у меня понимает только файлы mdb. Может, мне через mdb подключиться к dbf?
А использовать драйвер DRIVER={Microsoft dBase Driver (*.dbf)} не могу, у меня есть конструкция типа SELECT SUM(IIF(idd=0,x1,0)) as S1 FROM T1, IIF() понимает только {Microsoft Visual FoxPro Driver}. Может, ещё мог бы понять {Microsoft FoxPro Driver}, но так он заменён Visual.
← →
sniknik (2002-12-04 15:27) [13]> он у меня понимает только файлы mdb.
не может быть!
Extended Properties=dBase IV; видиш, это к dBase а вообще у него этих ISAM-ов штук 23 :о) (в смысле может работать с ними, правда повторы :( ). если вообще без них то *.mdb.
Jet iif тоже понимает вот проверил
SELECT SUM(IIF(KOD>10,0,1)) AS KODE FROM AN2 //работает
подключение к dBase как в (sniknik © (04.12.02 11:27)) давал.
слушай я както в кладовку ложил програмку TestMdb (готовые программы) как раз для этого (запросы тестировать, подключения) посмотри, может вопросы сами собой и отвалятся :-)). надумаеш качай *.exe вариант, у тебя 5 дельфи исходники под D6.
← →
Zn (2002-12-04 18:25) [14]
> sniknik © (04.12.02 15:27)
Ничего не получается! При драйвере dBase ругается на Iif (перепробовал массу провайдеров). Нормально работает только на Visual, но файла не создаёт. Кстати, спасибо за TestMdb - отличная штука.
Видится 2 выхода - раздобыть драйвер Microsoft FoxPro или попытаться сначала CREATE TABLE, а потом INSERT FROM SELECT.
Спасибо за помощь!
← →
sniknik (2002-12-04 18:36) [15]если у тебя точно не работает, в смысле iif, а у меня работает значит есть различия в системе, Jet к примеру разных версий, у меня SP6 на него стоит, файл Jet40SP6_W2K.exe для вин2000енг, попробуй себе поставить (они разные для разных виндов найди свой)
проще щас решить чем Microsoft VFoxPro оставлять, уж больно он своеобразный. кстати OLEDB драйверов на него я не нашол (бесплатных).
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.12.23;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.009 c