![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Delphi - ADO - DBF (Ошибка синтаксиса) [D7, XP]
Мальчик © (2012-02-29 17:14:00)Здравствуйте.
Столкнулся с проблемой при работе с ADO. Установил соединение с DBF,
выполняю INSERT. Работает. Но, если имя поля в таблице " Names"
добавление не выполняется. Ошибка синтаксиса Insert into. Я так понял, поле с зарезервированным именем. Но мне просто необходимо сажать именно в это поле.
qMain.SQL.Text := 'insert into mtk.dbf (NAMES) values (:ns)';
qMain.Parameters.ParamByName('ns').Value := 'Тест';
qMain.ExecSQL;
Подскажите как быть?
Сторонние компоненты использовать мне нельзя, BDE тоже.
sniknik (2012-02-29 18:05:00) [1]надо поставить OEM в Jet (в реестре), + если используется "внешний" BDE (установлен и настроено на него) то в нем у драйвера поставить "без кодировки" ansi вроде бы.
Anatoly Podgoretsky (2012-02-29 17:58:00) [2]> Delphi2007 (29.02.2012 17:50:12) [12]
В данной СУБД нет кодировки для dBase IV, она машинная
Smile (2012-02-29 17:55:00) [3]Может кто-нить подскажет какой сейчас год на дворе?
Заранее спасибо:)
Delphi2007 (2012-02-29 17:50:00) [4]
> Неизвестна ни версия СУБД, ни провайдер, ни версия "dbf"
> Ничего неизвестно
dBase IV.
Строка соединения: Provider=Microsoft.JET.OLEDB.4.0;Data Source=D:\;Extended Properties=dBase IV;
Anatoly Podgoretsky (2012-02-29 17:44:00) [5]
> У нас нет выбора, нужно отправлять данные в ведомство где
> требуют именно в таком формате.
Тогда вопроса нет, нельзя, так нельзя
Anatoly Podgoretsky (2012-02-29 17:43:00) [6]
> Delphi2007 (29.02.12 17:38) [6]
Неизвестна ни версия СУБД, ни провайдер, ни версия "dbf"
Ничего неизвестно
Delphi2007 (2012-02-29 17:40:00) [7]
> ИМХО, надо ноги за такие наименования отстреливать.
> Костыли на ровном месте.
> Впрочем, тема для холивара.
У нас нет выбора, нужно отправлять данные в ведомство где требуют именно в таком формате.
Ega23 (2012-02-29 17:39:00) [8]
> Подскажите пожалуйста как настраивать кодировку. Я сейчас
> сажаю данные с кириллицей, а они не читабельны в FoxPro.
> Нужно прописывать в строке соединения или при передаче
> параметров менять кодировку?
И Collation настраивать.
Delphi2007 (2012-02-29 17:38:00) [9]Подскажите пожалуйста как настраивать кодировку. Я сейчас сажаю данные с кириллицей, а они не читабельны в FoxPro. Нужно прописывать в строке соединения или при передаче параметров менять кодировку?
Ega23 (2012-02-29 17:38:00) [10]ИМХО, надо ноги за такие наименования отстреливать.
Костыли на ровном месте.
Впрочем, тема для холивара.
Anatoly Podgoretsky (2012-02-29 17:36:00) [11]Или так
qMain.SQL.Text := 'insert into mtk.dbf ("NAMES") values (:ns)';
или так
qMain.SQL.Text := 'insert into mtk.dbf ([NAMES]) values (:ns)';
Какой подойдет, в зависимости от провайдера
Delphi2007 (2012-02-29 17:22:00) [12]
> такие имена, а также с пробелами и т.д. нестандартные, экранируются
> кавычками (или другими символами в зависимости от движка),
> попробуй [Names].
То, что нужно. Спасибо.
Delphi2007 (2012-02-29 17:19:00) [13]
> qMain.SQL.Text := 'insert into mtk.dbf ("NAMES") values
> (:ns)';
> ?
>
'Инструкция INSERT INTO содержит неизвестное имя поля '"NAMES"'. Проверьте, что имя задано без ошибок, и повторите операцию'.
sniknik (2012-02-29 17:19:00) [14]> с зарезервированным именем.
такие имена, а также с пробелами и т.д. нестандартные, экранируются кавычками (или другими символами в зависимости от движка), попробуй [Names ].
> BDE тоже.
ты его уже используешь. просто "с широко закрытыми глазами".
Ega23 (2012-02-29 17:15:00) [15]
qMain.SQL.Text := 'insert into mtk.dbf ("NAMES") values (:ns)';
?