Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.24;
Скачать: CL | DM;

Вниз

Имя таблицы = 8 символов   Найти похожие ветки 

 
TTCustomDelphiMaster ©   (2002-10-02 17:23) [0]

Здравствуйте, Уважаемые коллеги.

Сегодня столкнулся с проблеммой, но для ее решения не хватает теоретических знаний, а для их получения - времени.
Вообщем работаю с dbf через DAO. Нужно создать таблицу с именем v1234567890 (имя файла v1234567890.dbf), но создается таблица с именем V1234567 (имя файла V1234567.dbf). Т.е. имя файла обрезается до 8 символов. Как создать таблицу у которой длина имени больше 8 символов?

Вот кусочки кода, которые может что-то прояснят (извеняюсь, но код на VC):


CDaoDatabase * m_pDbf;
CDaoRecordset * m_pSet;

...
CString sConnect;
TRY
{
m_pDbf = new CDaoDatabase();
sConnect.Format( "dBASE IV; DATABASE=%s", m_NevaCfg.GetDbfPath() );
m_pDbf->Open(_T(""), FALSE, FALSE, sConnect );
m_pSet = new CDaoRecordset( m_pDbf );
}

...

CString sFieldName;
CFileFind ff;
CDaoTableDef td(m_pDbf);

td.Create( "v1234567890");
td.CreateField( _T("DAT"), dbDate, 8 );
td.CreateField( _T("TIM"), dbText, 8 );
for (i = 1; i <= m_NevaCfg.GetAnalogsNum( nMPC ); i++)
{
sFieldName.Format( "CH%d", i );
td.CreateField( sFieldName, dbSingle, 4 );
}
td.Append();
td.Close();


Заранее спасибо за ответы.


 
TTCustomDelphiMaster ©   (2002-10-02 18:52) [1]

Ну хоть какую нибудь мысль. А?


 
MsGuns ©   (2002-10-02 22:41) [2]

Во-первых, а почему, собственно 8 символов ?. Это что, передается затем в DOS ?

Во вторых, когда-то сталкивался с подобной проблемой, когда надо было часто сохранять кучу мааааленьких файлов с произвольными, но РАЗНЫМИ, именами.
Решил ее с помощью каталогов. Пример, имя создаваемого каталога - DDMMGGxx (год, месяц, число), а внутри типа по времени. 8 символов для отображения ччммсс хватает


 
TTCustomDelphiMaster ©   (2002-10-02 22:57) [3]

Поясняю
Мне нужно создать файл vd02100301.dbf
Я делаю td.Create("v1234567890");
Получается файл vd021003.dbf , т.е. CDaoTableDef при создании новой таблицы почему то обрезает имя файла.

Альтернативные варианты не принимаются, т.к. если не удастся реализовать то что я задумал у меня уже есть 2 запасных варианта (но они маленько кривоваты, т.е. могут вызвать проблемы при определенных обстоятельствах).

Кардинальные изменения так же не допустимы, т.к. этот код является частью большого проекта, а у меня есть исходники только этой dll.


 
MsGuns ©   (2002-10-02 22:59) [4]

>TTCustomDelphiMaster © (02.10.02 22:57)

Сочувстую. Сопереживаю. Желаю успеха


 
Jeer ©   (2002-10-02 23:00) [5]

Создай "tmp.dbf"
Затем файловой операцией Rename
Затем td.Ореn(NewName)


 
TTCustomDelphiMaster ©   (2002-10-02 23:14) [6]

Jeer © (02.10.02 23:00)

А вот это я как раз упустил. Надо попробовать. Хотя думаю, что шансы не большие. Но все равно спасибо.


 
TTCustomDelphiMaster ©   (2002-10-03 05:17) [7]

Я тут подумал, не плоучится то что советует Jeer.
Кто работал с CDaoTableDef помогите.


 
Max Zyuzin ©   (2002-10-03 10:10) [8]

Скорее всего все закопано в том, что dBase старый формат, созданный еще под DOS, а там как известно ограничение на имя файла - 8 символов (+ 3 на расширенее).
Как помочь? А почему Вы выбрали именно dBase? Может что поновее использовать?


 
NickBat ©   (2002-10-03 10:44) [9]

Дело в том, что старый dBase формат не поддерживает длинные имена файлов. Если попробывать через досовский Фокс открыть файл с длинным именем он его обрезает с тильдой. А при сохранении в файл с длинным именем просто оставляет первые восемь символов. Так, что тут подойдет совет Jeer.



Страницы: 1 вся ветка

Текущий архив: 2002.10.24;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.02 c
1-78431
greenrul
2002-10-13 19:35
2002.10.24
Анонимное создание объектов:


6-78558
star
2002-08-20 23:31
2002.10.24
Знатоки RAS, откликнитесь!


14-78624
Человек
2002-10-03 16:11
2002.10.24
А как лучше производить оплату за продаваемые мною программы?


3-78223
User0
2002-10-01 18:40
2002.10.24
Как узнать какой доступ у пользователя к таблице ?


1-78446
Эрик
2002-10-12 08:49
2002.10.24
PageControl?