mssqlconn/es: what changed
Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.
Title: mssqlconn/es
| Old | New | Line | |
|---|---|---|---|
| 1 | + | ## Resumen | |
| 2 | + | ||
| 3 | + | 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. | |
| 4 | + | ||
| 5 | + |  | |
| 6 | + | ||
| 7 | + | ## DBLib | |
| 8 | + | ||
| 9 | + | mssqlconn utiliza la unidad de bajo nivel dblib que requiere de la librería FreeTDS(.dll/.dylib/.so) para conectar al servidor. | |
| 10 | + | ||
| 11 | + | ## Instalación | |
| 12 | + | ||
| 13 | + | Lo único que se necesita es una librería FreeTDS dll/dylib/so acorde a la plataforma utilizada. | |
| 14 | + | ||
| 15 | + | - 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 | |
| 16 | + | ||
| 17 | + | - 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](ftp://ftp.freepascal.org/fpc/contrib/windows/) | |
| 18 | + | ||
| 19 | + | 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). | |
| 20 | + | ||
| 21 | + | ## Documentación | |
| 22 | + | ||
| 23 | + | Documentación oficial: [documentación de FPC sobre mssqlconn](http://www.freepascal.org/docs-html/fcl/mssqlconn/index.html) | |
| 24 | + | ||
| 25 | + | ## Limitaciones y consejos | |
| 26 | + | ||
| 27 | + | - Puerto para Sybase: 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. | |
| 28 | + | ||
| 29 | + | Tal como especifica la documentación: | |
| 30 | + | ||
| 31 | + | - puede ser necesario retocar algunos parámetros para soportar BLOB. | |
| 32 | + | - no están soportados los resultados múliples de MS SQL (multiple resultsets (MARS)). | |
| 33 | + | ||
| 34 | + | Además, **TMSSQLConnection** y **TSybaseConnection** no soportan el manejo del retorno de estado y salida de parámetros de procedimientos almacenados. | |
| 35 | + | ||
| 36 | + | Consejos adicionales: | |
| 37 | + | ||
| 38 | + | - Puede que necesites realizar YourConnection.ExecuteDirect('SET ANSI_NULL_DFLT_ON ON'); si necesitas permitir automáticamente los valores NULL en las columnas cuando creas tablas. Ver documentación MS: <http://msdn.microsoft.com/en-us/library/ms174979.aspx> | |
| 39 | + | - Puede que necesites de manera similar establecer SET ANSI_PADDING al valor ON para habilitar la compatibilidad mejorada con las funciones de comparación de texto de sqldb. Ver documentación MS: <http://msdn.microsoft.com/en-us/library/ms187403.aspx> | |
| 40 | + | ||
| 41 | + | ## Ejemplos | |
| 42 | + | ||
| 43 | + | ### Creando una base de datos | |
| 44 | + | ||
| 45 | + | El ejemplo de debajo crea una base de datos en un servidor MS SQL. Ten en cuenta para que funcione que el parámetro de conexión AutoCommit debe establecerse a on. Para conexiones normales subsequentes se puede establecer a off de nuevo y utilizar **StartTransaction** and **Commit** regularmente. | |
| 46 | + | ||
| 47 | + | ``` pascal | |
| 48 | + | // Crear un formulario con un pulsador llamado DBButton, | |
| 49 | + | // un textbox llamado DatabaseNameEdit, | |
| 50 | + | // una conexión '''MSSQLConnection''' llamada FConn | |
| 51 | + | // ***asegúrate de que el parámetro Autocommit se encuentra establecido a on para la parte de creación de db antes de conectar: | |
| 52 | + | //FConn.Params.Add('AutoCommit=true'); | |
| 53 | + | procedure TForm1.CreateDBButtonClick(Sender: TObject); | |
| 54 | + | var | |
| 55 | + | CurrentDB: string; | |
| 56 | + | begin | |
| 57 | + | if DatabaseNameEdit.Text='' then | |
| 58 | + | begin | |
| 59 | + | showmessage('Nombre de base de datos vacío. Por favor especifica un nombre primero.'); | |
| 60 | + | exit; | |
| 61 | + | end; | |
| 62 | + | ||
| 63 | + | CurrentDB:=FConn.DatabaseName; | |
| 64 | + | try | |
| 65 | + | // For FPC 2.6.1+ | |
| 66 | + | FConn.ExecuteDirect('CREATE DATABASE '+DatabaseNameEdit.Text); | |
| 67 | + | { | |
| 68 | + | // This works with FPC 2.7.1, not on 2.6.1 | |
| 69 | + | FConn.CreateDB; | |
| 70 | + | } | |
| 71 | + | except | |
| 72 | + | on E: Exception do | |
| 73 | + | begin | |
| 74 | + | showmessage('Excepción corriendo CreateDB: '+E.Message); | |
| 75 | + | end; | |
| 76 | + | end; | |
| 77 | + | end; | |
| 78 | + | ``` | |
| 79 | + | ||
| 80 | + | --- | |
| 81 | + | *From the Free Pascal wiki, page "mssqlconn/es", as it stood on 2020-02-20 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).* | |
| 82 | + | Category: Castellano | |
| 83 | + | Category: Español |
