![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| AlexV |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 13.11.2002 Репутация: нет Всего: нет |
Как сохранить результат запроса ADOQuery1 во внешний файл ?
Например, в dbf (VFoxPro) ? Желательно не создавая заранее временных таблиц. |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
А таблица уже создана, или требуется его самому создавать?
пробежаться по всему НД ADOQuery1, считывая записи и заносить их в таблицу. Пробежаться можно и так:
Если же требуется создавать таблицу самому (программно), то необходимо прежде пробежаться по полям ADOQuery1 (через свойство Fields), считать их тип, и сгенерировать SQL запрос для создания таблицы, идентичной НД ADOQuery1 по количеству полей и их типу. -------------------- |
|||
|
||||
| AlexV |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 13.11.2002 Репутация: нет Всего: нет |
Файл создавать программно не нужно. Он уже создан (analitF.dbf), который содержит всего 3 поля SCHET, NAME, CODE.
Выполняю qrAnalitF1 и пытаюсь переписать данные в analitF.dbf (tmp1:TTable) while not qrAnalitF1.Eof do begin tmp1.Insert; tmp1.FieldByName('SCHET').AsString:=qrAnalitF1.FieldByName('SCHET').AsString; tmp1.FieldByName('NAME').AsString:=qrAnalitF1.FieldByName('NAME').AsString; tmp1.FieldByName('CODE').AsString:=qrAnalitF1.FieldByName('CODE').AsString; tmp1.Post; qrAnalitF1.Next; end; На операторе tmp1.Post; спотыкается и выдает "[Microsoft][ODBC Visual FoxPro Driver]Syntax error or access violation" Почему ? |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
Ну судя по синтаксису, все правильно, скорее всего, у тебя проблема с алиасом,
но код рабочий, это железно.... Я вот смотрю, ты используешь BDE, но в настройках алиаса указал ODBC Visual FoxPro Driver. У BDE есть свой драйвер для таблиц в формате FoxPro. При создании алиаса, выбирай драйвер STANDARD, а в самих настройках алиаса в DEFAULT DRIVER выбери FOXPRO. Тогда все должно работать. -------------------- |
|||
|
||||
| AlexV |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 13.11.2002 Репутация: нет Всего: нет |
> При создании алиаса, выбирай драйвер STANDARD, а в самих настройках
> алиаса в DEFAULT DRIVER выбери FOXPRO. Тогда все должно работать. Как это сделать ? Какой программой ? Я пытался BDE Administratorom - не получается, потому, что после выбора STANDARD, предлагает выбрать путь. А настройку DEFAULT DRIVER вообще нигде не нашел :-( Databese Desktopom тоже пробовал. Проблема таже. |
|||
|
||||
| AlexV |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 13.11.2002 Репутация: нет Всего: нет |
Получилось создать Alias BDE Administratorom как ты посоветовал, но
теперь не могу ConnectionString в создать в TADOQuery - в списках не виден источник, который я создал. Хотя я его сохранил и даже перезагрузился :-( |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Может я и не прав, но что-то я не припомню, чтобы ADO как-то было связано с BDE. Может вы куда-то не туда отправились ?
Хотя скажу честно - с ADO работал крайне мало. Так что если не прав - замолкаю, замолкаю, замолкаю |
|||
|
||||
| AlexV |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 13.11.2002 Репутация: нет Всего: нет |
Спасибо.
Да, это я запутался с этими ADO, BDE. Попробую через DBE (без ADO). Но завтра, а сейчас домой. |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
Да, ты запутался.....
Ты считывал данные, из компонента ADOQuery1 (ADO) а для него алиас (источник данных) создается в ODBC, а записывал в НД tmp1 (TTable), из чего я и решил, что ты используешь BDE (хотя ты наверное использовал алиас ODBC, в этом и была твоя ошибка) Если ты работаешь с ADO, то качестве компонента tmp1 используй не TTable, а TADOTable -------------------- |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
Да ты прав, они совершенно не связанны. но в BDE доступны источники данных ODBC -------------------- |
|||
|
||||
| AlexV |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 13.11.2002 Репутация: нет Всего: нет |
OK. Спасибо за все.
Через BDE все работает. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |