PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 25 → WX - Como exportar Base de Dados .TPS  para Ms SQL Server e Migrar do Clarion Softvelocity para a Plataforma WX PcSoft?
WX - Como exportar Base de Dados .TPS para Ms SQL Server e Migrar do Clarion Softvelocity para a Plataforma WX PcSoft?
Débuté par adrianoboller, 16 mai 2016 23:38 - 2 réponses
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 16 mai 2016 - 23:38




Prezados,

Venho através desse meu novo post aqui no fórum oficial descrever um passo a passo de como exportar Base de Dados .TPS (Topspeed, baseado em sistema de arquivos relacionais) para o Banco de Dados Relacional Ms SQL Server e assim migrar do Clarion Softvelocity para a Plataforma WX PcSoft, espero poder contemplar todos os detalhes e tirar a duvida de todos sobre esse assunto.

Passos a serem seguidos:

1 - Exporte o TPS para SQL usando o Template Dct2SQL, caso precise de maiores detalhes sobre o template DCT2SQL, entre em contato comigo pelo skype adrianoboller.

2 - Arquivos gerados execute no servidor Ms SQL Server





3 - Execute os scripts SQL no banco de dados para gerar um espelho com os arquivos TPS





4 - Abra o dicionário de Dados do Clarion (v6.3)





5 - Menu File / Import Table





6 - Defina o tipo do driver para: Microsoft SQL





7 - Defina o acesso a base de dados





8 - Selecione a tabela ou tabelas que foram criadas no Banco de Dados MS SQL SERVER a serem utilizadas no processo de exportação dos dados.





9 - Será exibida a tabela espelho no banco de dados Ms SQL Server no Dicionário como mostra a imagem abaixo:





10 - Modifique
a) Altere o nome colocando nome_SQL,
b) Altere o Prefixo acrescentando o _SQL,
c) Defina a variável: !Glo:PathServer no campo Owner Name
Conforme a imagem abaixo:





11 - No Clarion crie uma janela para fazer o processo de importação





12 - Propriedades da Janela





13 - Design da Janela de importação





14 - Defina em Files as tabelas envolvidas no processando de importação





15 - Variáveis globais usadas





16 - Variáveis dos locais dos arquivos TPS e seus Paths





17 - Copie o arquivo: c60mssx.dll para C:\Windows\System32





18 - Definindo a função de data e hora para fazer a migração em todas as tabelas





19 - Pontos de Embed





20 - Crie os códigos nos seguintes EMBEDs de evento de código





!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Antes de Abrir a Janela Definir onde estão os arquivos

GLO:SERVER = 'SERVER'
GLO:BANCO = 'Info'
GLO:USER = 'sa'
GLO:SENHA = '2016'

GLO:PATHSERVER = GLO:SERVER & ',' & GLO:BANCO & ',' & GLO:USER & ',' & GLO:SENHA

!!!!!!!!!!!!!!!!!!!!!!!!ENDERECO DOS ARQUIVOS

GLO:ENDERECO = 'c:\software\dados'

GLO:FATPED01=CLIP(GLO:ENDERECO)&'\FATPED01.TPS'
GLO:FATDUPAI=CLIP(GLO:ENDERECO)&'\FATDUPAI.TPS'
GLO:FATDUPFI=CLIP(GLO:ENDERECO)&'\FATDUPFI.TPS'
GLO:FATESMOV=CLIP(GLO:ENDERECO)&'\FATESMOV.TPS'
GLO:FATESCAB=CLIP(GLO:ENDERECO)&'\FATESCAB.TPS'
GLO:FATENTCA=CLIP(GLO:ENDERECO)&'\FATENTCA.TPS'
GLO:FATENTDT=CLIP(GLO:ENDERECO)&'\FATENTDT.TPS'
GLO:FATDUDET=CLIP(GLO:ENDERECO)&'\FATDUDET.TPS'
GLO:FATEMPFI=CLIP(GLO:ENDERECO)&'\FATEMPFI.TPS'
GLO:FATESTCX=CLIP(GLO:ENDERECO)&'\FATESTCX.TPS'
GLO:FATATVXX=CLIP(GLO:ENDERECO)&'\FATATVXX.TPS'

...

DISPLAY

---------------------------------------------------------------------------------------------------------------

FuncaoHoraString FUNCTION(LONG DATAHORACAMPO)
Glo:HoraString CSTRING(9)
CODE

IF DATAHORACAMPO > 0 !!!!!!

Glo:HoraString = '00:00:00'

ELSE
Glo:HoraString = ''

END


RETURN (Glo:HoraString)

-----------------------------------------------------------------------------------------------------------------

FuncaoDataHoraString FUNCTION(LONG DATAHORACAMPO)
Glo:DataHoraString CSTRING(21)
CODE

!CORRIGIR CAMPOS DATAS E HORAS
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ANO" = YEAR(DATAHORACAMPO)
MES" = MONTH(DATAHORACAMPO)
DIA" = DAY(DATAHORACAMPO)

!2016-05-15 00:00:00

IF DATAHORACAMPO > 0 !!!!!!

Glo:DataHoraString = FORMAT(ANO",@N04) &'-'& FORMAT(MES",@N02) &'-'& FORMAT(DIA",@N02) & ' 00:00:00'

ELSE
Glo:DataHoraString = ''

END


RETURN (Glo:DataHoraString)

---------------------------------------------------------------------------------------------------

TRANSACAO ROUTINE
Data
CODE
LOOP
CASE errorcode()
OF 56 OROF 48
SETCURSOR
IF Message('Não foi possível iniciar transação. Tentar novamente?','Erro', Icon:hand,Button:Yes+Button:No,Button:Yes) = Button:Yes
SETCURSOR(Cursor:Wait)
CYCLE
ELSE
SETCURSOR
Loc:Erro = 'S'
Rollback
BREAK
END
OF 32 OROF 37 OROF 80
SETCURSOR
Message('Erro '&ERRORCODE()&' ao iniciar transaþÒo.','Erro',Icon:hand)
Loc:Erro = 'S'
Rollback
BREAK
ELSE
SETCURSOR
Loc:Erro = ''
BREAK
END
END


---------------------------------------------------------------------------------------------------

FAZ01 ROUTINE

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!CLIENTES/FORNECEDORES
DataClarion" = ''
HoraClarion" = ''
DataHoraClarion" = ''

?Progress{PROP:progress} = 0
?Progress{PROP:rangehigh} = RECORDS(FATCLIFO)

Clear(CLIF:Record)
CLIF:CLIB_CLIFOR = ''
Set(CLIF:KCLIB_CLIFOR,CLIF:KCLIB_CLIFOR)
LOOP UNTIL ACCESS:FATCLIFO.NEXT()

?Progress{PROP:progress} = ?Progress{PROP:progress} + 1

CLIF_SQL:RECORD :=: CLIF:RECORD

!MESSAGE(FuncaoDataHoraString(CLIF:CLIB_DATACAD))

CLIF_SQL:CLIB_DATACAD = FuncaoDataHoraString(CLIF:CLIB_DATACAD)
CLIF_SQL:CLIB_DATACAD_DATE = CLIF:CLIB_DATACAD
CLIF_SQL:CLIB_DATACAD_TIME = FuncaoHoraString(CLIF:CLIB_DATACAD)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

CLIF_SQL:CLIB_DATAM = FuncaoDataHoraString(CLIF:CLIB_DATAM)
CLIF_SQL:CLIB_DATAM_DATE = CLIF:CLIB_DATAM
CLIF_SQL:CLIB_DATAM_TIME = FuncaoHoraString(CLIF:CLIB_DATAM)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

CLIF_SQL:CLIB_ATUALIZACAO = FuncaoDataHoraString(CLIF:CLIB_ATUALIZACAO)
CLIF_SQL:CLIB_ATUALIZACAO_DATE = CLIF:CLIB_ATUALIZACAO
CLIF_SQL:CLIB_ATUALIZACAO_TIME = FuncaoHoraString(CLIF:CLIB_ATUALIZACAO)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

CLIF_SQL:CLIB_DATAULTC = FuncaoDataHoraString(CLIF:CLIB_DATAULTC)
CLIF_SQL:CLIB_DATAULTC_DATE = CLIF:CLIB_DATAULTC
CLIF_SQL:CLIB_DATAULTC_TIME = FuncaoHoraString(CLIF:CLIB_DATAULTC)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

CLIF_SQL:CLIB_DATANASC = FuncaoDataHoraString(CLIF:CLIB_DATANASC)
CLIF_SQL:CLIB_DATANASC_DATE = CLIF:CLIB_DATANASC
CLIF_SQL:CLIB_DATANASC_TIME = FuncaoHoraString(CLIF:CLIB_DATANASC)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

CLIF_SQL:CLIB_DATAADM = FuncaoDataHoraString(CLIF:CLIB_DATAADM)
CLIF_SQL:CLIB_DATAADM_DATE = CLIF:CLIB_DATAADM
CLIF_SQL:CLIB_DATAADM_TIME = FuncaoHoraString(CLIF:CLIB_DATAADM)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

CLIF_SQL:CLIB_DATANEGOCIACAO = FuncaoDataHoraString(CLIF:CLIB_DATANEGOCIACAO)
CLIF_SQL:CLIB_DATANEGOCIACAO_DATE = CLIF:CLIB_DATANEGOCIACAO
CLIF_SQL:CLIB_DATANEGOCIACAO_TIME = FuncaoHoraString(CLIF:CLIB_DATANEGOCIACAO)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

CLIF_SQL:DATA_RG = FuncaoDataHoraString(CLIF:DATA_RG)
CLIF_SQL:DATA_RG_DATE = CLIF:DATA_RG
CLIF_SQL:DATA_RG_TIME = FuncaoHoraString(CLIF:DATA_RG)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


ACCESS:FATCLIFO_SQL.INSERT()

IF ERRORCODE()

LOC:ERRO = 1

CASE MESSAGE('DEU ERRO',ICON:QUESTION,BUTTON:YES, BUTTON:NO)
OF BUTTON:YES
MESSAGE('FATCLIFOR: '& ERRORCODE() & ERROR() )
BREAK
OF BUTTON:NO

END

END

END

EXIT


Agora feito o processamento os dados serão lidos e adicionados na tabela espelho no MS SQL Server, e par usar pelo windev as tabelas SQL compre comigo e instale o Driver Nativo do MS SQL SERVER, ou use a conexão OleDB ou ODBC, fazendo assim o import das tabelas para o Analisys do Windev e Webdev.

Qualquer dúvida entre em contato eu atuei com Clarion durante 15 anos

Caso tenha tenha alguma sugestão entre em com contato

As marcas aqui citadas pertencem as suas respectivas empresas
O Post desse fórum apenas se preocupa em ensinar a técnica de
exportação de dados entre as duas plataformas.

Meu skype translator: adrianoboller

:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Message modifié, 17 mai 2016 - 00:04
Posté le 25 octobre 2016 - 19:35
como fica o tipo de dados ?

pois ao carregar as tabelas TPS para o windev o mesmo nao consegue realizar CRUD devido ao tipo dos campos da tabela.


Atenciosamente ,
Ivandeclei Mendes
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 26 octobre 2016 - 12:34
Ivan,

Se com tudo isso que passei de graça o caminho das pedras

Eu ministro treinamento, me adicione no skype ADRIANOBOLLER que combinamos valores, horario ok.

:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/