Conexão em SqlConnection em outra maquina.

16/06/2010

Bom dia,

Estou tentando fazer um conexão em um banco SQLServer 2005 que fica em outra maquina.

é uma aplicação bem simples que vai ser usada apenas por um usuario e não quero usar a estrutura de duas aplicações Client/Server com DataSnap.

Quero simplesmente dizer o Caminho e que a aplicação rode na estação de trabalho.


o que estou esquecendo ?


No aguardo ,

Jorge.
Jorge Silva

Jorge Silva

Curtidas 0

Respostas

Jorge Silva

Jorge Silva

16/06/2010

Verificando atravez do try except , vi que o erro que esta dando é erro de biblioteca, do client do do banco, diz que não foi instalada ou esta em uma versão diferente.

ja instalei o client do banco;
já instalei o banco;
já copiei para a pasta do executavel as Dlls (dbxmss.dll,dbxmss9.dll,sqlncli.dll);

A mensagem é a seguinte:

TDBX Error: Driver could not be property initialized.
client library may be missing, not installed, or of the wrong version
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

16/06/2010

Olá amigo, como esta a configuração do teu SQL Connection ?

Att,

Wesley Y
GOSTEI 0
Jorge Silva

Jorge Silva

16/06/2010

Bom dia Wesley,

O TsqlConnection esta configurado da seguinte maneira:




Buscando de um arquivo .ini (Abaixo)


[ConnSomar]
Database=somar
HostName=localhost\SQLEXPRESS
User_Name=sapiens
Password=sapiens
OS Authentication=False


Linha 2 - Nome da Base
Linha 3 - IP do banco de dados
Linha 4 - Usuario
Linha 5 - Senha
Linha 6 - Altenticação do Sistema





o banco é o MS SqlServer 2005

No aguardo
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

16/06/2010

Olá amigo,

  Você já tentou conectar sem usar o .INI ?
  Qual é a versão do Delphi que você esta utilizando?
  Pois a mensagem original era :

"TDBX Error: Driver could not be property initialized.
client library may be missing, not installed, or of the wrong version"

Continua com esta mensagem ? Se sim tente configurar diretamente pelo Delphi, e não usar o .INI.

No aguardo das suas confirmações.

Um abraço

Wesley Y
GOSTEI 0
Jorge Silva

Jorge Silva

16/06/2010

Boa Tarde Wesley

Fiz este teste, já coloquei o hostname com com o IP, com PRINCIPAL\SQLEXPRESS, OS autentication (True/False),

e nada,


na maquina que está o banco funciona mas em uma estação não funciona, e se colocao um atalho na estação direcionando para o executavel no servidor dá o mesmo erro.


No aguardo
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

16/06/2010

Olá amigo,

Seguinte o que esta aparecendo não é problema no Delphi, mas sim no SQL Server, ele esta aceitando conexões remotas ?

Você consegue conectar pelo client do SQL Server ?

Um abraço

Wesley Y
GOSTEI 0
Jorge Silva

Jorge Silva

16/06/2010

Wesley,

Consigo conectar via ODBC, verifiquei os parâmetros do banco, todas as vias estão abertas para acesso remoto.




  No aguardo,
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

16/06/2010

Meu amigo,

Seguinte você disse que consegue via ODBC, certo ? A sua conexão com o Delphi não é por ODBC, ou é ? Qual tua versão do Delphi?


Att,

Wesley Y
GOSTEI 0
Jorge Silva

Jorge Silva

16/06/2010

Boa Tarde Wesley,

Não minha conexão não é via ODBC, usei só para testar se o banco cosegue ser enxergado por outra estação,

minha conexão é via paleta DBExpress (SQLConnection)

Minha versão é Delphi 2010

No aguardo,
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

16/06/2010

Olá amigo, confirma por favor, você tem estas DLL`s.

MS SQL Server Driver DBX Driver Client 2008 dbxmss.dll sqlncli10.dll 2005 dbxmss9.dll sqlncli.dll 2000 dbxmss.dll oledb.dll
No teu caso para o 2005.

Você tem esta mesmo ?

Um abraço

Wesley Y
GOSTEI 0
Jorge Silva

Jorge Silva

16/06/2010


já estavam na pasta do executavel os arquivos

dbxmss9.dll sqlncli.dll
é necessario colocar em mais algumas pasta ?


GOSTEI 0
Wesley Yamazack

Wesley Yamazack

16/06/2010

Olá Jorge,

   Seguinte meu velho depois de muito pesquisar, você terá que baixar o SqlClient 2008, no próprio site da Microsoft, para poder se comunicar com teu banco de dados.
    Seria legal se você conseguisse conectar sem ser por ODBC no servidor, pois pode ser alguma regra no SQL Server esta parte de configuração internet é mais complexa de fazer. Da uma olhada veja se consegue conectar com o SqlClient 2008, blz ?

Um abraço

Wesley Y
GOSTEI 0
Jorge Silva

Jorge Silva

16/06/2010

Wesley,


Só para constar meu Delphi é 2010 que tem nativo o MSSQLServer2008, mas fiz a alteração para que acrescenta-se o driver de conexão do MSSQLServer2005, lá no arquivo dbxdrivers.ini, então pela logica deveria funcionar como MSSQLServer2005.

O que estou achando estranho é ter que utilizar o client do MSSQLServer2008 para acessar a MSSQLServer2005.

Como disse só usei o ODBC para ver se conseguia de alguma formar acessar o banco, se existe outra forma de testar, pode falar que eu testo aqui.

No aguardo.

Jorge
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

16/06/2010

Olá meu caro,
   Desculpe a demora para resolver seu problema, eu também estava com este mesmo problema, e acabei de solucionar!
  Eu acabei instalando localmente o SQLServer 2008r2, para testar. Não sei se isso irá influenciar no teu caso.

Veja a configuração do SQLConnection :

drivername=MSSQL2008
schemaoverride=%.dbo
HostName=SERVIDOR
Database=Shop126BKP
user_name=sa
Password=1324
blobsize=-1
localecode=0000
isolationlevel=ReadCommitted
os authentication=False
prepare sql=False

Se você notar, estávamos cometendo o mesmo erro, colocar a instancia do banco no Host

HostName=localhost\SQLEXPRESS

Não precisa fazer isso!

HostName=localhost

Veja se irá funcionar no teu caso.

Um abraço

Wesley Y
GOSTEI 0
Devmedia

Devmedia

16/06/2010

Jorge, a resposta do consultor tirou suas duvidas? Podemos encerrar o chamado?
GOSTEI 0
Jorge Silva

Jorge Silva

16/06/2010

Só uma pergunta Wesley,

Você estáusando o Client do 2008 para acessar o server na versão 2005?


No aguardo,


Jorge
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

16/06/2010

Olá Jorge,
Estou usando SQL 2008(servidor), e acessando de uma terceira maquina com o delphi 2010 este banco.
Conectando da maneira como você estava fazendo eu não consegui mesmo, agora da maneira que lhe falei no outro post, esta sim eu consegui conectar.



Qual o erro? É o mesmo?

Um abraço

Wesley
GOSTEI 0
Jorge Silva

Jorge Silva

16/06/2010

o cliente esta usando o 2005 vou refazer e testar novamente.
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

16/06/2010

Ok fico no aguardo.

Um abraço

Wesley Y
GOSTEI 0
Jorge Silva

Jorge Silva

16/06/2010

Wesley,

Como está compilando os packages, com o executavel ou em real time ?

Jorge
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

16/06/2010

Olá Jorge, eu não estou usando packages.

Um abraço

Wesley Y
GOSTEI 0
Devmedia

Devmedia

16/06/2010

Jorge,
o seu problema foi resolvido? Podemos encerrar o chamado?
GOSTEI 0
Jorge Silva

Jorge Silva

16/06/2010

Wesley,

Não esta funcionando

Tem algum arquivo que tem que ser disponibilizado junto, alguma forma de compilação ou algum desbloqueio que tem que ser feito no banco de dados ou alguma coisa que tem que ser instalado na estação ?

O banco do cliente é MSSQL2005 e não posso muda-lo para 2008, Local funciona mas na rede não, o projeto só esta dependendo desta conexão para ser fechado.

No aguardo,
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

16/06/2010

Olá Jorge,

  Você consegue conectar o servidor com outra ferramenta de manutenção de banco de dados ? Ou nem assim você consegue conectar ? Isso não ficou claro pra mim. Você conecta ou não ?

No aguardo.

Wesley Y

GOSTEI 0
Jorge Silva

Jorge Silva

16/06/2010

Wesley,


Eu consigo via ODBC, mas via componentes DBEXPRESS não,

Quero colocar o executavel na estação e conectar o banco no servidor.

se eu usar o Componente ADOConnect ele conecta, mas tabem é via ODBC.

a estrutura foi feita, está funcionando, mas só funciona localmente.

aparentemente é um problema de versão de mas não estou conseguindo identificar oque seja.

no aguardo,



Jorge
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

16/06/2010

Jorge, o que eu quero saber é se você de uma outra ferramenta por exemplo o "SSMS - SQL Server Management Studio", você consegue conectar remotamente ?

Você pelo DBexpress consegue conectar localmente no Banco de Dados ?

São problemas distintos sacou a minha dúvida ?

Um abraço

Wesley Y
GOSTEI 0
Jorge Silva

Jorge Silva

16/06/2010

O problema está na versão do dbxmss.dll,

Tem alguma maneira de compilar junto com o executavel ?

Exemplo: A declaração de MIDASLIB na unit principal do programa que inclui o DBX?



Pergunta: Posso incluir dbxmss.dll na unit do sistema para caregar junto com o executavel ?

Talvez isso resolva.
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

16/06/2010

Olá Jorge, veja um tutorial que fiz agora pouco.

Primeiro passo localize uma das pastas abaixo de acordo com seu S.O.   Se você usar Win 7 : C:\Users\Public\Documents\RAD Studio\dbExpress\7.0   Se você usar XP : C:\Documents and Settings\All Users\Documentos\RAD Studio\dbExpress   Dentro dela você irá alterar o arquivo.   dbxdrivers.ini   [Installed Drivers]
DBXTrace=1
DBXPool=1
BlackfishSQL=1
DataSnap=1
ASA=1
ASE=1
DB2=1
Firebird=1
Informix=1
Interbase=1
MSSQL=1
MSSQL2008=1
MSSQL2005=1
MSSQL2000=1
MySQL=1
Oracle=1   Se você quiser configurar todos já pra deixar pronto segue abaixo o que tem que mudar   [MSSQL2008]

LibraryName=dbxmss.dll
VendorLib=sqlncli10.dll … [MSSQL2005]

LibraryName=dbxmss9.dll
VendorLib=sqlncli.dll
… [MSSQL2000]

LibraryName=dbxmss.dll
VendorLib=oledb.dll   Você irá agora copiar todo o código abaixo e colar, apenas substituindo o que esta em vermelho pelo seu banco de dados :   SchemaOverride=%.dbo DriverUnit=DBXMSSQL DriverPackageLoader=TDBXDynalinkDriverLoader,DBXCommonDriver140.bpl DriverAssemblyLoader=Borland.Data.TDBXDynalinkDriverLoader,Borland.Data.DbxCommonDriver,Version=14.0.0.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b MetaDataPackageLoader=TDBXMsSqlMetaDataCommandFactory,DbxMSSQLDriver140.bpl MetaDataAssemblyLoader=Borland.Data.TDBXMsSqlMetaDataCommandFactory,Borland.Data.DbxMSSQLDriver,Version=14.0.0.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b GetDriverFunc=getSQLDriverMSSQL LibraryName=dbxmss.dll VendorLib=sqlncli10.dll HostName=ServerName DataBase=Database Name User_Name=user Password=password BlobSize=-1 ErrorResourceFile= LocaleCode=0000 IsolationLevel=ReadCommitted OS Authentication=False Prepare SQL=False Como é SQL2005 ficaria assim :   [MSSQL2005]

SchemaOverride=%.dbo DriverUnit=DBXMSSQL DriverPackageLoader=TDBXDynalinkDriverLoader,DBXCommonDriver140.bpl DriverAssemblyLoader=Borland.Data.TDBXDynalinkDriverLoader,Borland.Data.DbxCommonDriver,Version=14.0.0.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b MetaDataPackageLoader=TDBXMsSqlMetaDataCommandFactory,DbxMSSQLDriver140.bpl MetaDataAssemblyLoader=Borland.Data.TDBXMsSqlMetaDataCommandFactory,Borland.Data.DbxMSSQLDriver,Version=14.0.0.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b GetDriverFunc=getSQLDriverMSSQL LibraryName=dbxmss9.dll
VendorLib=sqlncli.dll HostName=ServerName DataBase=Database Name User_Name=user Password=password BlobSize=-1 ErrorResourceFile= LocaleCode=0000 IsolationLevel=ReadCommitted OS Authentication=False Prepare SQL=False

  Seu arquivo final deverá ficar parecido com o abaixo :   [Installed Drivers] DBXTrace=1 DBXPool=1 BlackfishSQL=1 DataSnap=1 ASA=1 ASE=1 DB2=1 Firebird=1 Informix=1 Interbase=1 MSSQL=1 MySQL=1 Oracle=1 DevartSQLServer=1 DevartSQLServerCompact=1 MSSQL2008=1 MSSQL2005=1 MSSQL2000=1     [MSSQL2005]   SchemaOverride=%.dbo DriverUnit=DBXMSSQL DriverPackageLoader=TDBXDynalinkDriverLoader,DBXCommonDriver140.bpl DriverAssemblyLoader=Borland.Data.TDBXDynalinkDriverLoader,Borland.Data.DbxCommonDriver,Version=14.0.0.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b MetaDataPackageLoader=TDBXMsSqlMetaDataCommandFactory,DbxMSSQLDriver140.bpl MetaDataAssemblyLoader=Borland.Data.TDBXMsSqlMetaDataCommandFactory,Borland.Data.DbxMSSQLDriver,Version=14.0.0.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b GetDriverFunc=getSQLDriverMSSQL LibraryName=dbxmss9.dll VendorLib=sqlncli.dll HostName=ServerName DataBase=Database Name User_Name=user Password=password BlobSize=-1 ErrorResourceFile= LocaleCode=0000 IsolationLevel=ReadCommitted OS Authentication=False Prepare SQL=False     [BlackfishSQL] DriverUnit=DBXBlackfishSQL....
Veja se isso irá resolver teu problema.
Um abraço
Wesley Y

GOSTEI 0
Wesley Yamazack

Wesley Yamazack

16/06/2010

Olá Jorge,

   Consegui resolver o problema?

Um abraço

Wesley Y

GOSTEI 0
Jorge Silva

Jorge Silva

16/06/2010

Wesley,

Essa configuração eu ja tinha feito é a primeira coisa que faço quando instalo o delphi.

Olhe vou ver aqui outras maneiras de conectar, pois o projeto já está bem atrasado e tenho que entregar. Pode fechar o chamado Obrigado.
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

16/06/2010

Ok.

Um abraço

Wesley Y
GOSTEI 0
POSTAR