Форум: "Базы";
Текущий архив: 2003.09.25;
Скачать: [xml.tar.bz2];
Внизиз txt файла в Access (синтаксис SQL запроса) Найти похожие ветки
← →
koreshok (2003-09-02 19:03) [0]есть текстовый файл, есть БД Access.
пытаюсь вставить все записи из текстового файла в БД. делаю это так
ADOQuery2.SQL.Add("INSERT INTO MainTable(Source, Dest, Bytes, Packet) IN """+st+"""");
ADOQuery2.SQL.Add(" SELECT Source, Dest, Bytes, Packet FROM ""logWcvs"""); // st - это файл с БД Access
ADOConnection2.ConnectionString - указывает на тектовый дривер Микрософт.
вылетает ошибка
"[Microsoft][ODBC text driver] syntax error in query. Incomplete query clause"
что пишу не так ?
← →
kuchumovkv (2003-09-02 19:12) [1]Для начала попробуй узнать, в какой строке ошибка. И, MainTable - это в mdb, как понял, а что такое logWcvs?
← →
koreshok (2003-09-02 19:18) [2]
> Для начала попробуй узнать, в какой строке ошибка
а как это сделать?
[Microsoft][ODBC text driver] он знает только путь к "типа" БД, и знает расширения файлов, которые являются его таблицами. (по крайней мере я так понял), так вот logWcvs - это есть файл logWcvs.txt. в файле DSN указан путь к базе и расширение таблиц TXT, т.е. logWcvs это и есть текстовая таблица.
← →
kuchumovkv (2003-09-02 19:40) [3]К сожалению, не знаком с ньюансами систаксиса SQL для [ODBC text driver], а их для каждых дров более чем предостаточно, намучался с дровами для дбф-ок.
SELECT Source, Dest, Bytes, Packet FROM ""logWcvs"" как понимаю образует рекордсет для вставки в mdb, попробуй выполнить сначала его отдельно, без инсерта, так и узнаешь, в какой части глюк (я уверен, что именно в нем).
Второе, может вместо ""logWcvs"" - """logWcvs""", структура конструкции наводит на такое размышление, или """ вместо """, но это уже голые предположения, хотя зачастую такой метод приводит к результату. Лучше, конечно, хелп перед глазами.
← →
koreshok (2003-09-02 19:48) [4]
> Лучше, конечно, хелп перед глазами
а где взять эти самые "ньюансы"?
ошибка и точно в SELECT, но таже самая:(
← →
kuchumovkv (2003-09-02 19:58) [5]Это точно ошибка синтаксиса! А без шуток, "ньюансы", как показывает опыт, познаются методом проб и ошибок. SQL только кажется универсальным. Исчерпывающей документации ни по одним дровам не видел.
Кстати, где ты взял именно такую форму синтаксиса? Пошукай там, может что и бросится в глаза.
Попробуй выполнять запрос в явном виде (имя файла "z:\jjj.txt", напр, и т.д., апострофы, опять же), "select * ..." и т.д. Удачи.
← →
sniknik (2003-09-02 20:38) [6]можно узнать в JETSQL40.CHM если найдеш на своей машине, но это только из Access базы (mdb) подключенном через Jet можно текст вкачать, обратной ситуации типа (из текста) доступа к "верхним" (Access, MsSql) базам нет.
т.е. надо из Access доступ к txt делать.
← →
koreshok (2003-09-02 20:39) [7]ошибку нашел
ADOQuery2.SQL.Add("INSERT INTO MainTable(Source, Dest, Bytes, Packet) IN """+st+"""");
ADOQuery2.SQL.Add("SELECT logWcvs.Source, logWcvs.Dest, logWcvs.Bytes, logWcvs.Packet FROM logWcvs.txt logWcvs");
просто открыл Microsoft Query, мастером создал запрос и посмотрел синтаксис (оказывается иногда думать полезно)
← →
koreshok (2003-09-02 20:49) [8]2 sniknik оказывается можно и из тхт а Аксес загнать:) у меня получилось.
← →
sniknik (2003-09-02 21:31) [9]koreshok (02.09.03 20:49) [8]
хочеш сказать у тебя основное подключение к тексту, и из него к Access базе обращение? покажи.
← →
sniknik (2003-09-02 21:45) [10]а впрочем не надо, действительно получилось
коннект к тексту
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\;Extended Properties= Text;Persist Security Info=False
запрос
SELECT * INTO Box123 IN "D:\Base.mdb" FROM BOX#TXT
оказывается можно а я просто не пробовал.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.09.25;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.01 c