MsSqlServer x DBExpress

Delphi

19/07/2007

Srs, usando os artigos publicados na revista ClubeDelphi sobre o sistema Datacar, consegui desenvolver um ótimo sistema aqui onde trabalho, usando o Delphi7 + Dbexpress + Firebird. Agora a Empresa adquiriu um ERP que usa o banco de dados MsSqlServer. Preciso então migrar o meu sistema que usa Firebird para o novo Banco, porque vou aproveitar várias tabelas que veem do ERP integrando-as ao meu sistema. Usando o driver ODBC do Firebird e a ferramenta de Importar/Exportar dados do SqlServer, consegui importar completamente o banco em Firebird para ´dentro´ do SqlServer, fui ao sqlconnection do meu sistema e mudei o driver de conexão para mssql, o mesmo se conectou ao novo banco sem problemas. No entanto ao executar o sistema o mesmo já apresentou um erro logo no login, para resolvê-lo, retirei os campos de ´data´ do componente sqldataset responsável pela query de login, funcionou e consegui logar no sistema, mas ai quando vou abrir qualquer registro o sistema já apresenta outros erros que ai eu não consegui resolver. Um outro detalhe é que a retirada do campo Data do login foi porque o sistema apresentou diferença no tipo do campo ´era esperado Date e o campo data dentro do componente estava como SqlTimeStamp´. Eu uso data em vários módulos do sistema, logo preciso conseguir uma solução para o correto funcionamento do sistema e gostaria de contar com a ajuda do Fórum, senão terei que construir o sistema novamente. A sequencia de componentes que uso com Dbexpress é a seguinte: sqlconnection + sqldataset + datasetprovider + clientdataset + simpledataset (usado para exibir os re
Abraço a todos.


Programalista

Programalista

Curtidas 0

Respostas

Brunolspp

Brunolspp

19/07/2007

nao precisa usar simple dataset

da uma olhada no meu link de downloads gratuitos na apostila de desenvolvimento client/server, mostra como trabalhar de forma bidirecional e mto rapido somente com clientdataset que é o idela.

o simpledataset nao é mais evoluido, ele foi mantido por compatibilidade e a indicacao da empresa, desde o Delphi 7 é utilizar o ClientDataSet.

no mesmo link tem exemplos de DBX com SQL Server


GOSTEI 0
Programalista

Programalista

19/07/2007

Caro Bruno, obrigado pela atenção. Vou ver o material que vc sugeriu, mas o detalhe é que uso Delphi7 e seguindo a sua apostila vi que uso os componentes como estão lá e mesmo assim não estou tendo progresso usando o DBx com SqlServer. Mas com certeza tem solução. Vou quebrar um pouco mais a cabeça.

Abraço,

Programalista.


GOSTEI 0
Brunolspp

Brunolspp

19/07/2007

uma boa opcao e usar ADO.

siga a apostila substituindo os componetes sqlconnection por adoconnection e os sqldataset por adoquery

tb funciona.


GOSTEI 0
Rbmenezes6

Rbmenezes6

19/07/2007

acontece o seguinste erro
unable to load dbxasa30.dll errorcode 126 it may be missing from the system path

eu estou usado o delphi 2007



nao precisa usar simple dataset da uma olhada no meu link de downloads gratuitos na apostila de desenvolvimento client/server, mostra como trabalhar de forma bidirecional e mto rapido somente com clientdataset que é o idela. o simpledataset nao é mais evoluido, ele foi mantido por compatibilidade e a indicacao da empresa, desde o Delphi 7 é utilizar o ClientDataSet. no mesmo link tem exemplos de DBX com SQL Server



GOSTEI 0
Brunolspp

Brunolspp

19/07/2007

coloca esta dll no system32 do windows

no meu link de dwonloads tem exemplos disso.


GOSTEI 0
Rbmenezes6

Rbmenezes6

19/07/2007

eu coloque a dll no system 32 e o erro continuou


unable to load dbxmss30.dll (errocode 193) it may be missing from the system




coloca esta dll no system32 do windows no meu link de dwonloads tem exemplos disso.



GOSTEI 0
Emerson Nascimento

Emerson Nascimento

19/07/2007

Srs, usando os artigos publicados na revista ClubeDelphi sobre o sistema Datacar, consegui desenvolver um ótimo sistema aqui onde trabalho, usando o Delphi7 + Dbexpress + Firebird. Agora a Empresa adquiriu um ERP que usa o banco de dados MsSqlServer. Preciso então migrar o meu sistema que usa Firebird para o novo Banco, porque vou aproveitar várias tabelas que veem do ERP integrando-as ao meu sistema. Usando o driver ODBC do Firebird e a ferramenta de Importar/Exportar dados do SqlServer, consegui importar completamente o banco em Firebird para ´dentro´ do SqlServer, fui ao sqlconnection do meu sistema e mudei o driver de conexão para mssql, o mesmo se conectou ao novo banco sem problemas. No entanto ao executar o sistema o mesmo já apresentou um erro logo no login, para resolvê-lo, retirei os campos de ´data´ do componente sqldataset responsável pela query de login, funcionou e consegui logar no sistema, mas ai quando vou abrir qualquer registro o sistema já apresenta outros erros que ai eu não consegui resolver. Um outro detalhe é que a retirada do campo Data do login foi porque o sistema apresentou diferença no tipo do campo ´era esperado Date e o campo data dentro do componente estava como SqlTimeStamp´. Eu uso data em vários módulos do sistema, logo preciso conseguir uma solução para o correto funcionamento do sistema e gostaria de contar com a ajuda do Fórum, senão terei que construir o sistema novamente. A sequencia de componentes que uso com Dbexpress é a seguinte: sqlconnection + sqldataset + datasetprovider + clientdataset + simp Abraço a todos.

como disse o Bruno, se você usa clientdataset não precisa do simpledataset, pois o clientdataset já é bidirecional.

o erro que você está recebendo é por conta dos campos tipo DATE do SQL Server. eu tive o mesmo problema e por isso hoje raramente persisto os campos nos meus datasets.

para você resolver seu problema com o menor impacto possível, basta abrir os forms em modo texto e trocar todas as referências de TDateField/TDateTimeField por TSQLTimeStampField


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

19/07/2007

ledataset (usado para exibir os registros de forma bidirecional, onde posso navegar pelos registros na tela de pesquisa e passar o código do registro via parâmetro para que possa ser aberto pelo clientdataset). Se tiver algum outro procedimento a ser usado para que o sistema funcione com SqlServer, gostaria de contar com o auxílio de vocês. Ufa!!!
GOSTEI 0
Rbmenezes6

Rbmenezes6

19/07/2007

a minha dbxmss30.dll e com problemas onde eu posso baixar ela
ou se vc tiver mande para mim



eu coloque a dll no system 32 e o erro continuou unable to load dbxmss30.dll (errocode 193) it may be missing from the system [quote:ad3b507899=´BrunoLSPP´]coloca esta dll no system32 do windows no meu link de dwonloads tem exemplos disso.
[/quote:ad3b507899]


GOSTEI 0
Vitor Alcantara

Vitor Alcantara

19/07/2007

para você resolver seu problema com o menor impacto possível, basta abrir os forms em modo texto e trocar todas as referências de TDateField/TDateTimeField por TSQLTimeStampField


Para que desse certo você teria qua alterar no arquivo de extensão DFM e não só nos arquivos de extensão PAS dos seus forms os campos TDateField/TDateTimeField por TSQLTimeStampField .

Para ganhar tempo você poderia abrir o arquivo por um editor de texto como o Word e colocar para localizar e subistituir todas as expressões TDateField/TDateTimeField por TSQLTimeStampField.
Uma vez me ocorreu isso só que no meu caso os campos eram do tipo TSmallInteger e eu subistitui pelo TInteger.

Ps: Lembra de fazer uma cópia dos teus fontes antes para não ter problema depois.


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

19/07/2007

[quote:33ce03b124]para você resolver seu problema com o menor impacto possível, basta abrir os forms em modo texto e trocar todas as referências de TDateField/TDateTimeField por TSQLTimeStampField


Para que desse certo você teria qua alterar no arquivo de extensão DFM e não só nos arquivos de extensão PAS dos seus forms os campos TDateField/TDateTimeField por TSQLTimeStampField .

Para ganhar tempo você poderia abrir o arquivo por um editor de texto como o Word e colocar para localizar e subistituir todas as expressões TDateField/TDateTimeField por TSQLTimeStampField.
Uma vez me ocorreu isso só que no meu caso os campos eram do tipo TSmallInteger e eu subistitui pelo TInteger.

Ps: Lembra de fazer uma cópia dos teus fontes antes para não ter problema depois.[/quote:33ce03b124]
são extamente os DFM, foi isso que eu quis dizer com ´[b:33ce03b124]forms em modo texto[/b:33ce03b124]´; não falei da unit. mas isso só dá certo se os forms forem salvos em modo-texto (botão direito no form, marcar a opção [i:33ce03b124]Text DFM[/i:33ce03b124]).


GOSTEI 0
André

André

19/07/2007

Pessoal seguinte estou usando Sql Server 2000 e DBX do Delphi 7... Fiz minha aplicação e qdu eu ia rodar em uma maquina que não tinha delphi ele dava erro de uma DLL. Até aí tudo bem, joguei a DLL na pasta ai rodou tudo blz.

Só que as minhas telas de consulta sao umas telas simples, aperta tecla f2 e abre um formizinho de consulta.

E meu sistema funciona do seguinte modo, tipo estilo em clipper... Vamos supor digito o codigo do cliente se ele existir ele traz o cadastro pra alterar, senao ele traz o cadastro pra incluir.

Só que nessa ele da o erro, e quando eu teclo f2 pra consultar tbm ele da o msm erro de "Não enviar" tipo não é especificado o erro.


Só que se rodarmos em uma maquina que tenha instalado o delphi ele abre normal...

Alguem sabe me dizer o que seria isso ?

Abraços
GOSTEI 0
POSTAR