Prezados, saudações!
Estou com 3 tabelas gigantes aqui com a estensão .SQL e preciso de um utilitário que fizesse essa conversão para .DBF, alguém conhece algum?
O inverso encontramos com facilidade na internet...
Um abraço!

Moderador: Moderadores
DROP TABLE sm;
CREATE TABLE sm (
VO VARCHAR(1),
CD VARCHAR(4),
CM VARCHAR(5),
NQ VARCHAR(50),
CP VARCHAR(5),
NL VARCHAR(3),
MT VARCHAR(1),
DS VARCHAR(4),
RG VARCHAR(20),
RT VARCHAR(10),
FL VARCHAR(10),
INDEX smA (VO, NQ),
INDEX smC (NL),
INDEX smF (MT, NQ),
INDEX smI (VO, CD),
INDEX smJ (VO, NL)
);
INSERT INTO sm values ('G', 'GTaa', NULL, 'SNC, depressores do', NULL, '---', '-', 'Taa', NULL, NULL, NULL);
INSERT INTO sm values ('a', 'GTaa', '_#Gbz', 'Anestésicos gerais>>', NULL, 'Taa', '>', 'Saa', NULL, NULL, NULL);
INSERT INTO sm values ('a', 'GTab', NULL, 'Anestésicos intravenosos>>', NULL, 'Saa', '>', 'Sbw', NULL, NULL, NULL);
INSERT INTO sm values ('b', 'GTab', NULL, 'Barbitúricos', NULL, 'Sbw', NULL, 'ƒ01', NULL, NULL, NULL);
INSERT INTO sm values ('b', 'GTab', NULL, 'BenzodiazepÃnicos', NULL, 'Sbw', NULL, 'Æ’02', NULL, NULL, NULL);
INSERT INTO sm values ('b', 'GTab', NULL, 'Opióides', NULL, 'Sbw', NULL, 'ƒ03', NULL, NULL, NULL);
INSERT INTO sm values ('b', 'GTab', NULL, 'Diversos', NULL, 'Sbw', NULL, 'Æ’04', NULL, NULL, NULL);
INSERT INTO sm values ('b', 'GTab', NULL, 'Associação', NULL, 'Sbw', NULL, 'ƒ05', NULL, NULL, NULL);
INSERT INTO sm values ('a', 'GTac', NULL, 'Sedativos-hipnóticos>>', NULL, 'Taa', '>', 'Sab', NULL, NULL, NULL);
...
INSERT INTO sm values ('G', 'GTaa', NULL, 'SNC, depressores do', NULL, '---', '-', 'Taa', NULL, NULL, NULL);
INSERT INTO sm values ('a', 'GTaa', '_#Gbz', 'Anestésicos gerais>>', NULL, 'Taa', '>', 'Saa', NULL, NULL, NULL);
INSERT INTO sm values ('a', 'GTab', NULL, 'Anestésicos intravenosos>>', NULL, 'Saa', '>', 'Sbw', NULL, NULL, NULL);
INSERT INTO sm values ('b', 'GTab', NULL, 'Barbitúricos', NULL, 'Sbw', NULL, 'ƒ01', NULL, NULL, NULL);
INSERT INTO sm values ('b', 'GTab', NULL, 'BenzodiazepÃnicos', NULL, 'Sbw', NULL, 'Æ’02', NULL, NULL, NULL);
INSERT INTO sm values ('b', 'GTab', NULL, 'Opióides', NULL, 'Sbw', NULL, 'ƒ03', NULL, NULL, NULL);
INSERT INTO sm values ('b', 'GTab', NULL, 'Diversos', NULL, 'Sbw', NULL, 'Æ’04', NULL, NULL, NULL);
INSERT INTO sm values ('b', 'GTab', NULL, 'Associação', NULL, 'Sbw', NULL, 'ƒ05', NULL, NULL, NULL);
INSERT INTO sm values ('a', 'GTac', NULL, 'Sedativos-hipnóticos>>', NULL, 'Taa', '>', 'Sab', NULL, NULL, NULL);
"G","GTaa","","SNC, depressores do","","---","-","Taa","","",""
"a","GTaa","_#Gbz","Anestésicos gerais>>","","Taa",">","Saa","","",""
"a","GTab","","Anestésicos intravenosos>>","","Saa",">","Sbw","","",""
"b","GTab","","Barbitúricos","","Sbw","","ƒ01","","",""
"b","GTab","","BenzodiazepÃnicos","","Sbw","","Æ’02","","",""
"b","GTab","","Opióides","","Sbw","","ƒ03","","",""
"b","GTab","","Diversos","","Sbw","","Æ’04","","",""
"b","GTab","","Associação","","Sbw","","ƒ05","","",""
"a","GTac","","Sedativos-hipnóticos>>","","Taa",">","Sab","","",""
/***********************************
Compilar: hbmk2 Arquivo.PRG -lxhb
*///////////////////////////////////
REQUEST DBFCDX
Function Main()
Local i, cBuffer, cLinha, nQtdLin, nConta := 0, nHandler
Local cArquivoSQL := "SQL_File.SQL" // Arquivo Origem
Local cArquivoCVS := "CSV_File.CSV" // Arquivo de Transicao
Local ArquivoDBF := "DBF_File.DBF" // Banco de Dados Destino
RDDSetDefault( "DBFCDX" )
DBSetDriver( "DBFCDX" )
Clear Screen
cBuffer := FOpen( cArquivoSQL, 2 )
nHandler := FCreate( cArquivoCVS )
Do While Hb_FReadLine( cBuffer, @cLinha, Nil, 255 ) = 0
If ( "sm values" $ cLinha )
cLinha := Subst( cLinha, At( ['], cLinha ) )
cLinha := StrTran( cLinha, ");", "," )
cLinha := StrTran( cLinha, "NULL", "" )
cLinha := StrTran( cLinha, "'" )
cLinha := Hb_AnsiToOem( cLinha ) + Hb_Eol()
// cLinha := Upper( cLinha )
FWrite( nHandler, cLinha, Len( cLinha ) )
EndIf
@ 5, 2 Say ++nConta
EndDo
FClose( nHandler )
DbCreate(ArquivoDBF,{;
{"vo" ,"C", 01, 0},;
{"cd" ,"C", 04, 0},;
{"cm" ,"C", 05, 0},;
{"nq" ,"C", 50, 0},;
{"cp" ,"C", 05, 0},;
{"nl" ,"C", 03, 0},;
{"mt" ,"C", 01, 0},;
{"ds" ,"C", 04, 0},;
{"rg" ,"C", 20, 0},;
{"rt" ,"C", 10, 0},;
{"fl" ,"C", 10, 0};
})
Use ( ArquivoDBF )
@ 5, 2 Say "Copiando os dados para o DBF"
Append From ( cArquivoCVS ) DELIMITED
@ 5, 2 Say "Gerando os indices "
Index On Upper( vo + nq ) To ( "smA" )
Index On Upper( nl ) To ( "smC" )
Index On Upper( mt + nq ) To ( "smF" )
Index On Upper( vo + cd ) To ( "smI" )
Index On Upper( vo + nl ) To ( "smJ" )
Return Nil
Usuários vendo este fórum: Nenhum usuário registrado online e 7 visitantes