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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.05 c
15-1170042777
Slider007
2007-01-29 06:52
2007.02.18
С днем рождения ! 29 января


6-1158124142
Alexey 12
2006-09-13 09:09
2007.02.18
Не передается вложение


15-1169032453
PZ
2007-01-17 14:14
2007.02.18
Призрак в актовом зале (?)


15-1169869363
IMHO
2007-01-27 06:42
2007.02.18
Слово о клавиатуре


1-1167227514
AngelOfDarkness_
2006-12-27 16:51
2007.02.18
Excel