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

Вниз

DBF и структура файла   Найти похожие ветки 

 
Максименко   (2007-02-02 09:27) [0]

Мастера добрый день! Помогите пожалуйста, очень надо. Мне необходимо поменять структуру DBF файла программно. А именно мне нужно, у всех полей типа Character длинну поля сделать 60, поголовно.....Очень на вас надеюсь, заранее благодарю.


 
Elen ©   (2007-02-02 09:30) [1]


>  Мне необходимо поменять структуру DBF файла программно

команда SQL Alter Table
Если не ошибаюсь кажись что-то в этом роде : ALTER TABLE customer ALTER COLUMN cust_id c(Кол-во символов)


 
Elen ©   (2007-02-02 09:33) [2]


> Мне необходимо поменять структуру DBF файла программно

Извини за нескромный вопрос, а фаилов которые надо менять много? И как часто ты собираешся менять их?


 
Максименко   (2007-02-02 09:44) [3]

Да, их много. Мне на один раз. Не хотелось бы каждую через FoxPro открывать и каждое поле менять в ручную. :(
с SQL-ом в Дельфи плохо лажу, попробывал через Query использовать данный запрос, ошибка выходит на "ALTER" :(


 
Elen ©   (2007-02-02 10:10) [4]


>  Не хотелось бы каждую через FoxPro открывать и каждое поле
> менять в ручную

На твоем бы месте я бы прогу на FoxPro написала типа Use таблица Alter Table... И пусть фокс сам меняет, в делфе с ДБФ работать немного проблемно...


 
Максименко   (2007-02-02 10:32) [5]

Спасибо!


 
Плохиш ©   (2007-02-02 10:47) [6]


> в делфе с ДБФ работать немного проблемно

Обалдеть, чего только здесь не узнаешь.


 
Elen ©   (2007-02-02 10:49) [7]


> Плохиш

Это сугубо личное мнение. Если знаеш другие способы предложи, а не упрекай.


 
Плохиш ©   (2007-02-02 10:53) [8]


> Elen ©   (02.02.07 10:49) [7]
> Если знаеш другие способы предложи

Другие способы чего? Применитепьно к фразе "в делфе с ДБФ работать немного проблемно".


 
Elen ©   (2007-02-02 10:54) [9]


> Плохиш

Применительно к "Мне необходимо поменять структуру DBF файла программно. А именно мне нужно, у всех полей типа Character длинну поля сделать 60"


 
Плохиш ©   (2007-02-02 10:55) [10]


> Elen ©   (02.02.07 10:49) [7]

Кстати, чтобы ответить на вопрос "попробывал через Query использовать данный запрос, ошибка выходит на "ALTER"", надо включать телепатор, а мне лень :-P


 
Плохиш ©   (2007-02-02 10:56) [11]


> Elen ©   (02.02.07 10:54) [9]

Зачем я буду повторять твой же ответ из [1]? :-)


 
Elen ©   (2007-02-02 10:57) [12]

Удалено модератором
Примечание: Создание пустых сообщений


 
vtur ©   (2007-02-02 13:06) [13]

Очень просто, если знаешь структуру файла

 type TDBFHdStruct = record
  Tdbf:string[7];
  Hz:SmallInt;
  Pr:array [0..21] of char;
 end;

 type TDBFFdStruct = record
  Name:array [0..10] of char;
  Tp:char;
   Off:Integer;
  Pr:array [0..15] of char;
 end;

procedure TDmProplata.ModHeadDBF;
var HeadDbf:TDBFHdStruct;
HeadFd:TDbfFdStruct;
HFileDbf: file of Byte;
k,i,lf:Integer;
begin
k:=SizeOf(TDBFHdStruct);
 AssignFile(HFileDbf,DBImport);
 Reset(HFileDbf);
BlockRead(HFileDbf, HeadDbf, k);
 k:=(HeadDbf.Hz - 1) div 32;
 lf:=SizeOf(TDBFFdStruct);
 i:=1;
 while i<k  do begin
 BlockRead(HFileDbf, HeadFd, lf);
   if(HeadFd.Tp="N")then begin
    HeadFd.Tp:="C";
   end;
   HeadFd.Off:=0;
   HeadFd.pr[0]:=60;//длина поля в байтах
   Seek(HFileDbf, i*lf);
 BlockWrite(HFileDbf, HeadFd, lf);
   i:=i+1;
 end;
 CloseFile(HFileDbf);
end;


 
Elen ©   (2007-02-02 13:10) [14]


> Очень просто, если знаешь структуру файла

Ага. И версию заголовка таблицы твоя прога учитывает...


 
Elen ©   (2007-02-02 13:13) [15]


> vtur

И кстати на Фоксе аналогичная прога будет содержать как минимум 5 строк против твоих несколько большего количества и будет надежнее. И кстати ничего не мешает выполнить фоксовские проги из делфи через, например, ADO. Это легко и приятно :)



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

Форум: "Начинающим";
Текущий архив: 2007.02.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.045 c
15-1170160747
Манюня
2007-01-30 15:39
2007.02.18
Спасибо мастерам


15-1169970657
$Pl@Sh
2007-01-28 10:50
2007.02.18
Прога для создания EMS


2-1169975622
electroman239
2007-01-28 12:13
2007.02.18
стиль заливки


2-1147795287
Sphinx
2006-05-16 20:01
2007.02.18
Кнопка или панель с переносом строк


3-1164615431
click
2006-11-27 11:17
2007.02.18
Где в TreeView хранить "ключ"?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский