Главная страница
    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.008 c
4-78723
GarryFV
2002-09-11 13:39
2002.10.24
Окна , процесссы, потоки...


3-78285
HNN
2002-10-02 19:04
2002.10.24
Descending


6-78581
B-Ars
2002-08-21 12:43
2002.10.24
Возможно ли узнать какие расшареные файлы открыты у меня другими


1-78410
Explorer
2002-10-15 12:12
2002.10.24
Обработать строку


3-78248
Dorosh
2002-10-02 12:26
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский