mssqlconn/es
Overview
mssqlconn es una unidad fcl-db que contiene código de conector para TMSSQLConnection (MS SQL Server) y TSybaseConnection (Sybase ASE) Lazarus utiliza mssqlconn para presentar conectores a MS SQL y Sybase ASE.
DBLib
mssqlconn utiliza la unidad de bajo nivel dblib que requiere de la librería FreeTDS(.dll/.dylib/.so) para conectar al servidor.
Instalación
Lo único que se necesita es una librería FreeTDS dll/dylib/so acorde a la plataforma utilizada.
- Bajo Linux, descarga el paquete freetds que provee libsybdb.so (e.g. en Debian lo provee el paquete libsybdb5) (y el paquete de desarrollo) utilizando el gestor de paquetes. Puede ser necesario añadir un enlace simbólico libsybdb.so a libsybdb.so.5
- Bajo Windows, se puede descargar una versión reciente de la librería FreeTDS tanto en su versión de 32 o 64 bits dblib.dll desde el siguiente enlace: [1]
Uso avanzado: modificando el fichero de FPC dblib.pas SQLDB puede utilizar la librería "nativa" ntwdblib.dll en lugar de la librería FreeTDS dblib.dll (en este caso FPC necesita ser compilado).
Documentación
Documentación oficial: documentación de FPC sobre mssqlconn
Limitaciones y consejos
- Sybase port: el puerto por defecto para Sybase ASE es el 5000. Como FreeTDS/mssqlconn utiliza el 1433 por defecto, puede ser necesario añadir :5000 a la propiedad del nombre de host (hostname) automáticamente o bien manualmente de forma posterior por parte del usuario.
Tal como especifica la documentación:
- puede ser necesario ratocar algunos parámetros para soportar BLOB.
- no están soportados los resultados múliples de MS SQL (multiple resultsets (MARS)).
Also, TMSSQLConnection and TSybaseConnection do not support handling of return status and output parameters of stored procedures.
Consejos adicionales:
- You might want to do an YourConnection.ExecuteDirect('SET ANSI_NULL_DFLT_ON ON'); if you want to automatically allow NULL values for columns when creating tables. See MS documentation: http://msdn.microsoft.com/en-us/library/ms174979.aspx
- You might want to similarly set SET ANSI_PADDING to ON to enable better compatibiity with sqldb text comparison functions. See MS documentation: http://msdn.microsoft.com/en-us/library/ms187403.aspx