Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.10.24;
Скачать: [xml.tar.bz2];

Вниз

Имя таблицы = 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.007 c
14-78614
QUE
2002-10-03 14:01
2002.10.24
Пропали компаненты


1-78396
Эрик
2002-10-12 09:37
2002.10.24
Edit.Text?


14-78654
Anatoly Podgoretsky
2002-10-04 09:25
2002.10.24
Именинники на 4 октября


14-78598
Malder
2002-09-30 10:44
2002.10.24
Проблемы со звуком


1-78400
BJValentine
2002-10-15 13:06
2002.10.24
Дата+время





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский