![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ADO, строка подключения и диск D [D5, D6, D7, CSV]
ИМХО © (2003-10-14 11:21:00)
Не могу понять одной вещи. Может подскажете? Почему в строке подключения в качестве Data Source нужно указывать диск D:\ ???
Anatoly Podgoretsky (2003-10-14 16:00:00) [21]
Это название файла, а не соответствие формату.
Сходи в Королевство Дельфи там в лицее есть статья про файлы. Думаю написаное там распространяется и на АДО
ИМХО (2003-10-14 15:57:00) [22]
Мой пример нормально работает, если разделителем служит точка с запятой. Но на практике чаще встречается вариант с запятой. В конце концов, это ведь COMMA SEPARATED!
Anatoly Podgoretsky (2003-10-14 15:20:00) [23]
Ну так может у тебя и другие данные неправильные?
ИМХО (2003-10-14 15:16:00) [24]
Это в "Язык и стандарты" - Числа - Разделитель элементов списка?
Не помогает :(
Anatoly Podgoretsky (2003-10-14 15:10:00) [25]
Ну это ты считаешь, что у тебя csv файл, а АДО видимо так не считает, попробуй во первых заменить запятую на системный разделитель списков
ИМХО (2003-10-14 15:06:00) [26]
Блин, я РАЗОЧАРОВАЛСЯв возможностях ADO по обработке CSV-файлов :(((
ИМХО (2003-10-14 15:03:00) [27]
Вот этот код тож не помогает:
const
ConnStr =
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Extended Properties=Text;Persist Security Info=False";
var
ODName: string;
begin
if not OpenDialog1.Execute then
Exit;
ODName := OpenDialog1.FileName;
CSVDataSet.Close;
if not ADOConnection1.Connected then
ADOConnection1.ConnectionString := Format(ConnStr,
[ExtractFilePath(ODName)]);
CSVDataSet.CommandText := "SELECT * FROM [" +
ChangeFileExt(ExtractFileName(ODName), "") + "#csv]";
CSVDataSet.Open;
end;
Данные читаются в один столбец, в CSV-файле разделителем служит запятая.
ИМХО (2003-10-14 14:10:00) [28]
Открывает ошибочно - в одну колонку :(((
И еще вопрос. Где можно указать, что выступает в качестве разделителя полей (запятая, точка с запятой, табулятор и проч.)?
ИМХО (2003-10-14 13:55:00) [29]
Открывает в один столбец. То есть не видит, что полей гораздо больше, чем одно.
sniknik (2003-10-14 13:54:00) [30]
> Есть подозрение, что я неверно пишу в CommandText. Но что туда писать?
все правильно,
может только еще можно (но не обязательно раз открывает), в кавычки омя иоставить и точку на решотку заменить чтобы запрос получился таким
"SELECT * FROM [test.#Txt]"
sniknik (2003-10-14 13:51:00) [31]
> Вроде открывает, но не так, как надо:
а как надо? в чем проявляется "не так"?
(но вобще до вечера, у меня выезд, может кто еще поможет)
Anatoly Podgoretsky © (14.10.03 13:25) [11]
кстати прикольно, как дошло... да как представил... изрядно повеселился. :о)))
ИМХО (2003-10-14 13:46:00) [32]
Есть подозрение, что я неверно пишу в CommandText. Но что туда писать?
ИМХО (2003-10-14 13:44:00) [33]
Вроде открывает, но не так, как надо:
const
ConnStr =
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Extended Properties=Text;Persist Security Info=False";
begin
if not OpenDialog1.Execute then
Exit;
if not ADOConnection1.Connected then
ADOConnection1.ConnectionString := Format(ConnStr,
[ExtractFilePath(OpenDialog1.FileName)]);
CSVDataSet.CommandText := "SELECT * FROM " + ExtractFileName(OpenDialog1.FileName);
CSVDataSet.Open;
end;
sniknik (2003-10-14 13:33:00) [34]
аааа, тонкий английский юмор!? :о) (ну и так же понятно что это про путь, или нет?)
Anatoly Podgoretsky (2003-10-14 13:25:00) [35]
Я вообще то про рабочий пример со своим
sniknik (2003-10-14 13:22:00) [36]
ИМХО © (14.10.03 13:16) [8]
тогда поставь C:\Projects\TestADO\ без указания файла
Anatoly Podgoretsky © (14.10.03 13:17) [9]
а чего еще думать?
".\" нормальный путь. (когда обязательно нужен текущий корень)
с двумя тоже (от текущей директории)
а тут три, ну думаю ошибся парень.
Anatoly Podgoretsky (2003-10-14 13:17:00) [37]
sniknik © (14.10.03 13:13) [7]
Ааааа, ты думаешь он его указал :-(
ИМХО (2003-10-14 13:16:00) [38]
Ну да, под треми точками подразумевается путь C:\Projects\TestADO\test.csv
sniknik (2003-10-14 13:13:00) [39]
> Когда я указывал реально существующий ...
а счас?
не знаю что ты указывал, но путь тремя точками не задается (могут быть одна и две точки в некоторый случаях).
я конечно теперь догадываюсь что под точками ты имел ввиду свой путь в символах но я то его не вижу, вижу то что ни в одной строке не пройдет а декларируется как путь. вот и дал тебе рабочий пример со своим.
ИМХО (2003-10-14 13:00:00) [40]
Когда я указывал реально существующий путь до своего CSV-файла, выскакивало сообщение об ошибке:
"Ошибка Microsoft Data Link
Сбой проверки подключения из-за ошибки при инициализации поставщика.
Строка "..." задает ошибочный путь.
Проверьте, что путь задан правильно и имеется подключение к серверу, на котором находятся файлы"