[firebase-br] (OT) Gerar metadata sql de um arquivo dbf em delphi
marcelo luiz stefaniak - teflamar
marcelo em teflamar.com.br
Ter Jul 11 18:07:35 -03 2006
Claudir, segue rotina em delphi para gerar script, de dbf, clientdataset,
query, etc.
procedure tfrmdiversos.gera_script;
var f:textfile;
i,x: integer;
wcampo0:string;
wcampo:string;
wconteudo:string;
wreg:string;
begin
x:=0;
dm.dbf1.first;
assignfile(f,edscript.text);
rewrite(f);
writeln(f,'delete from '+uppercase(edit2.text)+';');
while not dm.dbf1.eof do
begin
wreg:='insert into '+uppercase(edit2.text)+' (';
for I := 0 to dm.dbf1.FieldCount - 1 do
begin
wcampo:=lowercase(dm.dbf1.Fields[I].fieldname);
wreg:=wreg+wcampo;
if i <> dm.dbf1.FieldCount - 1 then wreg:=wreg + ',';
end;
wreg:=wreg+') values (';
for I := 0 to dm.dbf1.FieldCount - 1 do
begin
wconteudo:='';
if not dm.dbf1.Fields[I].IsNull then
begin
wcampo0:=lowercase(dm.dbf1.Fields[I].fieldname);
wcampo:=wcampo0;
if wcampo='to' then wcampo:='para';
if wcampo='codigo' then wcampo:='cod';
if wcampo='password' then wcampo:='senha';
if (dm.dbf1.fieldbyname(wcampo0).DataType=ftfloat) or
(dm.dbf1.fieldbyname(wcampo0).DataType=ftcurrency) or
(dm.dbf1.fieldbyname(wcampo0).DataType=ftsmallint) or
(dm.dbf1.fieldbyname(wcampo0).DataType=ftinteger) then
begin
if dm.dbf1.fieldbyname(wcampo0).asstring='' then
wconteudo:='null'
else
wconteudo:=trocacarac(floattostr(arred2(dm.dbf1.fieldbyname(wcampo0).asfloat,2)),',','.');
end;
if (dm.dbf1.fieldbyname(wcampo0).DataType=ftdate) then
begin
if dm.dbf1.fieldbyname(wcampo0).asstring='' then
wconteudo:='null'
else
wconteudo:=h39(datausa(dm.dbf1.fieldbyname(wcampo0).asstring));
end;
if (dm.dbf1.fieldbyname(wcampo0).DataType=ftstring) or
(dm.dbf1.fieldbyname(wcampo0).DataType=ftmemo) then
begin
if dm.dbf1.fieldbyname(wcampo0).asstring='' then
wconteudo:='null'
else wconteudo:=h39(dm.dbf1.fieldbyname(wcampo0).asstring);
end;
end;
if wconteudo='' then wreg:=wreg+'null' else wreg:=wreg+wconteudo;
if i <> dm.dbf1.FieldCount - 1 then wreg:=wreg + ',';
end;
wreg:=wreg+');';
inc(x);
if x > strtoint(edcomita.text) then
begin
writeln(f,'commit work;');
x:=0;
end;
writeln(f,wreg);
dm.dbf1.next;
end;
writeln(f,'commit work;');
closefile(f);
lb1.caption:='fim';
end;
// marcelo luiz stefaniak - teflamar proc. dados ltda
----- Original Message -----
From: "Claudir Pereira dos Santos" <claupers_dbrays em yahoo.com.br>
To: "Lista de discussão FireBase" <lista em firebase.com.br>
Sent: Tuesday, July 11, 2006 10:28 AM
Pessoal, desculpem-me por postar este Off-topic mas é que to procurando algo
em delphi para extrair o metadata sql de uma tabela DBF. Na net ainda nao
encontrei nada. Alguém pode me ajudar?
Cordialmente
Claudir P Santos
Mais detalhes sobre a lista de discussão lista