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

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

Длинное имя? [D7, dBase, FoxPro]


av-mari ©   (2008-03-03 14:00:00) 

Работаю через ADO с dbf-файлом посредством ADOQuery

 // p1 содержит имя файла договоров
 p1:=ExtractFileName(ExpandFileName(fileDBF));
 p1:=stringreplace(p1,'.','#',[]);
 // p1 имеет значение 20П003_001_0001#dbf
 TableDOG.SQL.Text:='Select * from ['+p1+']';
 TableDOG.Open;

при попытке открытия запроса прога ругается. Установлено, что на длинное имя. Как можно обойти? В голову пришло - на лету переименовывать, брать данные и переименовывать обратно. Но это уж совсем некрасиво.
Спасибо!


Anatoly Podgoretsky   (2008-03-04 16:36:00) [1]

> av-mari  (04.03.2008 08:04:07)  [7]

Никак, но далее и смотреть уже не хочется, когда в первых строках ерунда.
Я так и поступил.


av-mari   (2008-03-04 09:41:00) [2]


> Интересно, а с результатом функции LongToShortFileName таблица
> откроется?


Вроде получилось...
Спасибо


sniknik   (2008-03-04 08:31:00) [3]

> А что за хитрости с именем таблицы в запросе, зачем  20П003_001_0001#dbf, а не "20П003_001_0001.dbf", например?
чисто "пальцы погнуть", и так и так понимает, и вообще без расширения которое необязательно.


sniknik   (2008-03-04 08:28:00) [4]

> Имя менялось по-разному, поэтому и установлено, что с русскими буквами, но короткое до 8 симв.проходит на ура.
ну, я тоже не просто так сказал, взял приведенное тобой имя и проверил в паре движков, открылось... (хотя у тебя явно используется jet (второй уже лишний), который ты стесняешься приводить... как и тект ошибки. показатель #)

> По морде ударь себя.
а так это ты "установщик". а меня то за что? это же только LDM. а я к ним не отношусь.


ЮЮ   (2008-03-04 08:24:00) [5]

Интересно, а с результатом функции LongToShortFileName таблица откроется?

>Объект '20П003_001_0001'
А куда по ходу дела '#dbf' делось?  
А что за хитрости с именем таблицы в запросе, зачем  20П003_001_0001#dbf, а не "20П003_001_0001.dbf", например?


av-mari   (2008-03-04 08:16:00) [6]


> На матерном?


Объект '20П003_001_0001' не найден ядром базы данных Microsoft jet. проверьте существование объекта и правильность имени и пути.


av-mari   (2008-03-04 08:06:00) [7]


> "установщику" по морде, и заново "устанавливать", теперь
> уже учитывая текст ошибки которым ругается.


Имя менялось по-разному, поэтому и установлено, что с русскими буквами, но короткое до 8 симв.проходит на ура. По морде ударь себя.


av-mari   (2008-03-04 08:04:00) [8]


> Нифига себе, сначала расширяем, а потом сжимаем до оригинала,
>  нафига?


Это как-то влияет на решение проблемы?


av-mari   (2008-03-04 08:03:00) [9]


> не такое уж оно и длинное... а вот русские буквы да еще
> юникодом это нехорошо


Ничего не поделаешь, это выгрузка из другой программы


Anatoly Podgoretsky   (2008-03-03 19:18:00) [10]

> av-mari  (03.03.2008 14:00:00)  [0]

> p1:=ExtractFileName(ExpandFileName(fileDBF));

Нифига себе, сначала расширяем, а потом сжимаем до оригинала, нафига?


sniknik   (2008-03-03 15:17:00) [11]

не такое уж оно и длинное... а вот русские буквы да еще юникодом это нехорошо.

> Установлено, что на длинное имя.
"установщику" по морде, и заново "устанавливать", теперь уже учитывая текст ошибки которым ругается.


Johnmen   (2008-03-03 14:57:00) [12]


> при попытке открытия запроса прога ругается.

На матерном?


av-mari   (2008-03-03 14:49:00) [13]

Все написано в вопросе

// p1 имеет значение 20П003_001_0001#dbf


Правильный_Вася   (2008-03-03 14:05:00) [14]


> Установлено, что на длинное имя

длинное - это какое? пример


Наверх

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