Problema con SQL Server

34 views
Skip to first unread message

Novato

unread,
Nov 10, 2009, 11:58:28 AM11/10/09
to symfony-es
Buenas, el problema que tengo es el siguiente, no puedo generar el
esquema de una base de datos sql server 2000 con symfony 1.2.9 al
ejecutar el comando symfony propel:buil-schema pero cuando lo hago
con la version 1.1.9 no tengo problema. He configurado los archivos
databases.yml de la manera correspondiente para cada version, pero aun
asi, el problema persiste, espero puedan ayudarme.

Saludos.

Marcelo Colombi

unread,
Nov 10, 2009, 8:17:15 PM11/10/09
to symfo...@googlegroups.com
Tenes que seguir los pasos que de:
http://trac.symfony-project.org/wiki/HowToConnectToMSSQLServer

Tambien mirate y segui los pasos de los links que figuran como por ejemplo:
Fix by sarhugo in ticket http://trac.symfony-project.org/ticket/5577

Si lo haces de esta manera va a funcionar de 10.

Si seguis con problemas avisame que te envio un archivo de los pasos a
seguir en español... ahora no lo tengo en esta maquina... pero el
jueves vuelvo a la maquina donde esta.

A los que están leyendo les aviso que ese paso a paso es mas
completito que este link y totalmente en español y lo voy a subir en
cuanto termine de armarlo de una manera formal.

Saludos.


Tambien segui los pasos que tiene

José Terán Lavillla

unread,
Nov 10, 2009, 8:36:49 PM11/10/09
to symfo...@googlegroups.com
Disculpa por mi ignorancia pero tengo una duda, en todo lado he leido que se requiere el pdo_dblib para hacer la conexion a mssql, viendo en mi php.ini tengo las extensiones php_pdo.dll y php_pdo_mssql.dll , son estas las librerias pdo_dblib??? o es que debo de tener en mi php.ini una extension que diga pdo_dblib?????

Gracias por tu respuesta
--
al...@gmail.com     - jos...@hotmail.com

williams

unread,
Nov 10, 2009, 10:21:15 PM11/10/09
to symfo...@googlegroups.com
Si php está casado con mysql porque usan sql server? este no le es infiel a visual estudio .net o bueno, si le es pero con problems.

murkein


--- El mar 10-nov-09, José Terán Lavillla <val...@gmail.com> escribió:



¡Obtén la mejor experiencia en la web!
Descarga gratis el nuevo Internet Explorer 8
http://downloads.yahoo.com/ieak8/?l=e1

williams

unread,
Nov 10, 2009, 10:22:23 PM11/10/09
to symfo...@googlegroups.com
Si php está casado con mysql porque usan sql server? este no le es infiel a visual estudio .net o bueno, si le es pero con problems.

murkein


--- El mar 10-nov-09, José Terán Lavillla <val...@gmail.com> escribió:

De: José Terán Lavillla <val...@gmail.com>
Asunto: [symfony-es] Re: Problema con SQL Server
A: symfo...@googlegroups.com
Fecha: martes, 10 noviembre, 2009, 9:36 pm

Marcelo Colombi

unread,
Nov 12, 2009, 11:04:47 AM11/12/09
to symfo...@googlegroups.com
Symfony dice ser multiplataforma y que toda su configuracion está basada en la aislacion de la base de datos que uses para que puedas cambiar el motor cuando se te antoje; por lo tanto deberia de funcionar bajo cualquier  motor de base de datos solo configurando , lamentablemente no es así y tenes que modificar muchas otras cosas para que te funcione con sql server.
Si PHP está casado con MySQL que Symfony haga lo que dice ser o que deje de vender algo que no es.
Al margen de esto hay muchas empresas que poseen la licencia de SQL Server y son amantes del mismo (no es mi caso, yo prefiero Oracle) y deberían de poder seguir usando su producto en vez de mysql que si bien es bueno no tiene la potencia que tienen los otros.
 
 
El DBLIB dice que es para linux... si tienes windows utiliza lo siguiente:
Las extensiones que tengo son las siguientes (Conste que tengo varios proyectos de symfony con diferentes motores, tal vez no necesites todas las que yo):
;extension=php_bz2.dll
;extension=php_curl.dll
extension=php_dba.dll
;extension=php_dbase.dll
;extension=php_exif.dll
;extension=php_fdf.dll
extension=php_gd2.dll
extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_ifx.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
extension=php_mbstring.dll
;extension=php_mcrypt.dll
;extension=php_mhash.dll
;extension=php_mime_magic.dll
;extension=php_ming.dll
extension=php_msql.dll
extension=php_mssql.dll
extension=php_mysql.dll
extension=php_mysqli.dll
;extension=php_oci8.dll
;extension=php_openssl.dll
extension=php_pdo.dll
;extension=php_pdo_firebird.dll
extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_oci8.dll
extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_soap.dll
;extension=php_sockets.dll
;extension=php_sqlite.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
extension=php_xmlrpc.dll
extension=php_xsl.dll
;extension=php_zip.dll
extension=php_sqlsrv_ts.dll
 
(La ultima la baje desde la página de microsoft, dice solucionar varios problemas entre sqlserver 2005/08 con PHP)
 
- Luego Configura los archivos propel.ini y database.yml de la siguiente manera:
DATABASE.YML:
 
dev:
  propel:
    param:
      classname: DebugPDO
test:
  propel:
    param:
      classname: DebugPDO
all:
  propel:
    class: sfPropelDatabase
    param:
      phptype:   mssql
      classname:  PropelPDO
      dsn:        'mssql:host=<Direccion del Servidor>;dbname=<Nombre de la Base>'
      username:   <usuario>
      password:   <contraseña>
      encoding:   utf8
      persistent: true
      pooling:    true
      options:    none
 
PROPEL.INI:
propel.targetPackage       = lib.model
propel.packageObjectModel  = true
propel.project             = <Nombre del proyecto>
propel.database            = mssql
propel.database.driver     = mssql
propel.database.url        = 'mssql:host=<direccion del Servidor>;dbname=<Nombre de la Base>'
propel.database.creole.url = ${propel.database.url}
propel.database.user       = <usuario>
propel.database.password   = <password>
propel.database.encoding   = utf8
propel.dateTimeClass       = MssqlDateTime

-Se debe bajar de la página de creole, (http://creole.phpdb.org/trac/wiki/Users/Download), la última versión y descomprimirla dentro de una carpeta llamada "creole"
en "<proyecto>\lib\vendor\symfony\lib\plugins\sfPropelPlugin\lib\vendor\propel\".
-se debe comentar la linea "$con->exec("SET NAMES '" . $charset . "'");" con "//" delante del archivo "<proyecto>\lib\vendor\symfony\lib\plugins\sfPropelPlugin\lib\vendor\propel\adapter\DBAdapter.php"
-Se debe colocar el siguiente código en la linea 273 de:
<PROYECTO>\lib\vendor\symfony\lib\plugins\sfPropelPlugin\lib\vendor\propel\util\BasePeer.php
if (!$criteria->keyContainsValue($pk->getFullyQualifiedName())) {
 $newQualifiedCols = array();
 foreach ($qualifiedCols as $qualifiedCol) {
  if(trim($qualifiedCol) != trim($pk->getFullyQualifiedName())) {
   $newQualifiedCols[] = $qualifiedCol;
  }
 }
 $qualifiedCols = $newQualifiedCols;
}
(Esto se realiza para que no tome las claves autonuméricas y las pase como null.)
 
Luego debes seguir los pasos del link que te envie anteriormente:
 
para modificar los archivos debugpdo.php con el contenido del archivo MSSqlDebugPDO.php.
Modificar el archivo PropelPDO.php con el contenido de MSSqlPropelPDO.php
Crear el archivo que contiene la clase MssqlDateTime tal y como lo dice el link.
(para este ultimo debes agregar el archivo que contiene la clase en el archivo propel.php.
 
(Todo esto lo vas a encontrar entrando en los links del link anterior).
 
Con todo esto a mi me anda perfectamente, sin ningún tipo de problemas a excepcion de que tengo que generar los alias a mano en las funciones doSelectJoinAll generadas automaticamente porque SQLServer tira error al colocar en el select dos campos con el mismo nombre.
Espero que te sirva, cualquier cosa avisame y los vemos la particularidades o problemas que aparezcan.
 
Saludos.
Marcelo.
Reply all
Reply to author
Forward
0 new messages