Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ADO, строка подключения и диск D [D5, D6, D7, CSV]


Страницы:   1 2 3

ИМХО ©   (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
Сбой проверки подключения из-за ошибки при инициализации поставщика.
Строка "..." задает ошибочный путь.
Проверьте, что путь задан правильно и имеется подключение к серверу, на котором находятся файлы"


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо