error con fuente sqlserver

Richard, estuve haciendo una simple prueba para tomar datos de la base en sqlserver y me da el siguiente error que adjunto.
No se si es que no puedo acceder o esta faltando algo, ya que lo del faltante del driver nunca me habia parecido.

La llamada a la fuente se hace de la misma manera que con una base postgres no? Te adjunto el error por pantall, el log del toba y el php dondo esta definido la llamada a la fuente.
Gracias por la ayuda.


componente.doc (28.5 KB)

listados.txt (381 Bytes)

error.png

error.png

Hola Carolina,

tenes activada la extension de pdo para SQLServer?.. salvo que no este funcionando la misma, no te deberia estar dando este error.

Lo otro que te pediria y solo por chequear algo medio bizarro que ya ha pasado, los logs de toba se crean normalmente no? Supongo que si porque me pasaste la traza… pero solo para estar seguros, porque suele dar un error de bd (de ahi lo bizarro).

Saludos

Richard, la extension pdo_odbc esta incluida, y es esa la que se corresponde con el sqlserver no? porque otra no encuentro. Los logs del toba estan funcionando correctamente, la carpeta logs dentro de i__desarrollo esta creada y con archivos de logs actualizados.

sALUDOS

Hola Carolina,

estas trabajando en windows o linux?.. para windows la extension que te pase en el post anterior deberia funcionar. Para linux en cambio tenes que usar odbc… pero en ese caso, te conviene cambiar el motor de la fuente de datos a obdc en toba y listo.

Saludos

Richard, estoy trabajando en windows y pude instalar el driver. Pero el error sigue siendo el mismo. El php que tengo instalado es php-5.3.28 que lo instalae con este instalador (php-5.3.28-Win32-VC9-x86(2).exe).
Si bien en la guia que me pasaste dice “La versión más reciente del controlador está disponible aquí: » Descarga de SQLSRV 3.0. Si fuera necesario dar soporte paraor PHP 5.2 y/o PHP compilado con VC6, use la versión 2.0 del controlador: » Descarga de SQLSRV 2.0.” la que pude instalar es la 2.0. Con la 3.0 me da error y no encuentra un directorio.

Pero bueno, el error es el mismo. Cuando intento ehjecutar el driver 3.0 me pide un directorio, elijo el ext del php y me sale el error que adjunto.


error_sql.png

error_sql.png

php.png

php.png

Estas son todas las librerias que tiene activas en el php.ini

[PHP_OPENSSL]
extension=php_openssl.dll
[PHP_PDO]
extension=php_pdo.dll
[PHP_PDO_ODBC]
extension=php_pdo_odbc.dll
[PHP_PDO_PGSQL]
extension=php_pdo_pgsql.dll
[PHP_PGSQL]
extension=php_pgsql.dll
[PHP_BZ2]
extension=php_bz2.dll
[PHP_CURL]
extension=php_curl.dll
[PHP_GD2]
extension=php_gd2.dll
[PHP_GETTEXT]
extension=php_gettext.dll
[PHP_GMP]
extension=php_gmp.dll
[PHP_IMAP]
extension=php_imap.dll
[PHP_MBSTRING]
extension=php_mbstring.dll
[PHP_MYSQL]
extension=php_mysql.dll
[PHP_MYSQLI]
extension=php_mysqli.dll
[PHP_PDO_MYSQL]
extension=php_pdo_mysql.dll
[PHP_PDO_SQLITE]
extension=php_pdo_sqlite.dll
[PHP_SOAP]
extension=php_soap.dll
[PHP_SOCKETS]
extension=php_sockets.dll
[PHP_SQLITE3]
extension=php_sqlite3.dll
[PHP_TIDY]
extension=php_tidy.dll
[PHP_XMLRPC]
extension=php_xmlrpc.dll
[PHP_EXIF]
extension=php_exif.dll
[PHP_PDO_OCI]
extension=php_pdo_oci.dll
[PHP_OCI8]
extension=php_oci8.dll
[PHP_OCI8_11G]
extension=php_oci8_11g.dll

La del sqlserver es la que se corresponde con el odbc? o tengo que activar alguna otra? En la carpeta ext del php estan todas estas dll que adjunto


sql_dll.png

sql_dll.png

Hola Carolina,

en teoria tendrias que poder instalar la version 3.0… salvo que te falte algun requerimiento del SO, con respecto al error del directorio… es un instalador hecho por Microsoft, deberia funcionar correctamente… pero bue, a veces puede fallar. Probaste en algun otro directorio y despues copiando a mano la dll?

Lo otro que veo en esta pagina es que ademas de instalar el driver, tambien tenes que tener Microsoft SQL Server 2012 Native Client para la version 3.0.

Con respecto al tema de las librerias, justamente las que te faltan son las de SQL Server, tenes que agregarlas a php.ini. La de ODBC funciona solo cuando elegis como motor odbc.

Fijate que en la pagina que te pase, al final esta los nombres de las librerias que tendrias que tener para cada version de PHP y del Driver.

Saludos

Richard, te cuento que pude instalar todo. El native client, la version 3.0 del driver tambien, la descargue en una carpeta particular que cree y luego los copie dentro de la carpeta ext del php. Adjunto como tengo el php ini ahora pobre con varias librerias. Y el error sigue siendo el mismo :(. Cabe aclarar que reinicié el apache por las dudas.

p/d: voy a probar levantar la base en mi localhost a ver si asi funciona, como para descartar alguna otra cosa rara


PHP.doc (93 KB)

Hola Carolina,

pense que lo estabas probando en tu propia maquina :D… bueno no importa, lo que si… en php.ini tenes una ensalada de extensiones importante. Unicamente deberias tener activas las que se corresponden con la version 3.0… osea:


[PDO_SQLSRV]
extension=php_pdo_sqlsrv_53_nts.dll
[SQLSRV]
extension=php_sqlsrv_53_nts.dll

Proba con eso, a ver si cambia el msg al menos.

Saludos

Richard, luego de varios dias peleando con el sqlserver pude hacerlo andar en mi propia maquina, borre los que tenias de mas en el php.ini lo deje como me indicaste. Pero el error sigue siendo el mismo :frowning:

Me doy por vencido con la fuente en sqlserver jeje

Hola Carolina,

no entiendo, lo hiciste andar o no?.. si funciono en tu maquina, tiene que poder configurarse sin problemas contra un servidor remoto.

Si te encuentra el driver para la instalacion local de tu maquina, tiene que poder encontrarlo tambien para cuando se conecta con el servidor remoto.

Saludos

Con el toba no funciona. Sigue dando el mismo error de que no encuentra el driver.
Vamos a seguir probando, en base a tus recomendaciones deberia funcionar. Asi que vamos a seguir dandole pelea :smiley:

Hola Carolina,

bien, lo que intentaria yo es ver si puedo lograr una conexion manual via pdo, digamos… en lugar de usar la de toba… hacer un php plano que me permita testear la conectividad, para ver si efectivamente es un problema de php que no encuentra el driver o si hay algo mas, directamente relacionado con toba.

Fijate que en el editor (en la pantalla inicial) hay un link a una pagina de info, pasame lo que sale en esa pagina para ver si engancho algo relativo al driver de MSSQL, es medio hijoesumadre SQLServer… pero tampoco pa tanto.

Saludos

Medio hijo de su madre si lo miras con un solo ojo jajajaja
vos sabes que teniamos problemas para conectarnos con un usuario nuevo que creamos, me dejaba conectarme unicamente con el usuario de windows y nos estaba judeando bastante. Pudimos hacerlo andar con otro pero si especificamos ese mismo en la fuente del toba, no le gusta.

Voy a probar lo que me sugeris y te cuento como me va.
Graciasss…

p/D: adjunto la info del php


phpinfo.doc (454 KB)

Hola Carolina,

es que soy chicato :stuck_out_tongue: :D.

vos sabes que teniamos problemas para conectarnos con un usuario nuevo que creamos, me dejaba conectarme unicamente con el usuario de windows y nos estaba judeando bastante. Pudimos hacerlo andar con otro pero si especificamos ese mismo en la fuente del toba, no le gusta. p/D: adjunto la info del php

Bueno aca hay dos temas, vamos por partes:

1.- Erroneamente asumi que tenias una version non thread safe y te mande a instalar esa extension en los post previos, de la info veo que es thread safe, sin embargo has sido mas inteligente que yo y te las rebuscaste para instalar la version correcta asumo, ya que aparece el driver listado. Leccion, no darme bola siempre, bien ahi pequeña saltamontes! :smiley:

2.- El tema de tener problemas con el usuario nuevo, puede ser de permisos o del rol de ese usuario… digamos mas de configuracion del motor propiamente dicho, el problema de que no encontrara el driver era otra cosa, probablemente mi culpa luego de que te mande a activar la extension incorrecta.

No recuerdo si SQLServer tiene una gestion de conexiones al estilo postgres (pg_hba.conf) o si simplemente es la configuracion del usuario sin muchas mas vueltas. En cualquier caso, me ha pasado de tener mal configurado el nivel del usuario en postgres y que no pudiera loguear o acceder a distintos elementos, tambien he puteado cuando necesitaba scriptear algo y me quedaba mal configurado el metodo de autenticacion, asi que son un par de cosas a revisar al menos del lado del motor.

La conexion manual lo que te va a asegurar es si funciona o no el driver.

Saludos