Sign in Join
Wiki copytemporary

mssqlconn/fr: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
1-**mssqlconn** est un unité de fcl-db contenant le code du connecteur pour [[TMSSQLConnection/fr|TMSSQLConnection]] (MS SQL Server) et [[TSybaseConnection/fr|TSybaseConnection]] (Sybase ASE).
1+---
2+[[Portal:Databases|**Portail de la base de données**]]
3+Références: · [[Databases/fr|Information générale]] · [[Database libraries/fr|Bibliothèques]] · [[Database field type/fr|Types de champ]] · [[Data Controls tab/fr|Contrôles]] · [[Lazarus DB Faq/fr|FAQ]] · [[SqlDBHowto/fr|Comment faire en SQL ?]] · [[Working With TSQLQuery/fr|Travailler avec TSQLQuery]] · [[How to write in-memory database applications in Lazarus/FPC/fr|Applications de base de données en mémoire]] · Tutoriels/articles pratiques : · [[Lazarus Database Overview/fr|Vue d'ensemble]] · [[SQLdb Tutorial0/fr|0 - Configuration de la base de données]] · [[SQLdb Tutorial1/fr|1 - Commençons]] · [[SQLdb Tutorial2/fr|2 - Edition]] · [[SQLdb Tutorial3/fr|3 - Requêtes]] · [[SQLdb Tutorial4/fr|4 - Modules de données]] · [[SQLdb Programming Reference/fr|Référence de programmation SQLdb]] · Bases de données · [[Advantage Database Server/fr|Advantage]] \- [[MySQLDatabases/fr|MySQL]] \- MSSQL \- [[postgres/fr|Postgres]] \- [[Firebird/fr|Interbase]] \- [[Firebird/fr|Firebird]] \- [[Oracle/fr|Oracle]] \- [[ODBCConn/fr|ODBC]] \- [[TParadox/fr|Paradox]] \- [[SQLite/fr|SQLite]] \- [[Lazarus Tdbf Tutorial/fr|dBASE]] \- [[MS Access/fr|MS Access]] \- [[Zeos tutorial/fr|Zeos]]
4+
5+**mssqlconn** est un unité de fcl-db contenant le code du connecteur pour [[TMSSQLConnection/fr|TMSSQLConnection]] (MS SQL Server) et [[TSybaseConnection/fr|TSybaseConnection]] (Sybase ASE).
26
3-Lazarus utilise mssqlconn pour présenter un connecteur MS SQL et un connecteur Sybase ASE.
7+Lazarus utilise mssqlconn pour présenter un connecteur MS SQL et un connecteur Sybase ASE.
48
59## DBLib
610
7-mssqlconn utilise l'unité de bas-niveau dblib qui nécessite la bibliothèque [FreeTDS](http://www.freetds.org) (.dll/.dylib/.so) pour se connecter au serveur.
11+mssqlconn utilise l'unité de bas-niveau dblib qui nécessite la bibliothèque [FreeTDS](<http://www.freetds.org>) (.dll/.dylib/.so) pour se connecter au serveur.
812
913## Installation
1014
11-La seule chose dont vous avez besoin est une bibliothèque dll/dylib/so FreeTDS pour votre plate-forme.
15+La seule chose dont vous avez besoin est une bibliothèque dll/dylib/so FreeTDS pour votre plate-forme.
1216
13-- Sur Linux, téléchargez le paquet freetds qui fournit **libsybdb.so** (p.ex. dans la Debian, cela est fourni par le paquet **libsybdb5**) et le paquet de développement associé en utilisant votre gestionnaire de paquet. vous aurez aussi besoin d'ajouter un lien symbolique libsybdb.so vers libsybdb.so.5.
14-- Sur Windows, vous pouvez télécharger une version 32 ou 64 bits récente de la bibliothèque FreeTDS **dblib.dll** ici : [1](ftp://ftp.freepascal.org/fpc/contrib/windows/)
17+ * Sur Linux, téléchargez le paquet freetds qui fournit **libsybdb.so** (p.ex. dans la Debian, cela est fourni par le paquet **libsybdb5**) et le paquet de développement associé en utilisant votre gestionnaire de paquet. vous aurez aussi besoin d'ajouter un lien symbolique libsybdb.so vers libsybdb.so.5.
18+ * Sur Windows, vous pouvez télécharger une version 32 ou 64 bits récente de la bibliothèque FreeTDS **dblib.dll** ici : [[1]](<ftp://ftp.freepascal.org/fpc/contrib/windows/>)
1519
16-Utilisation avancée : en modifiant le fichier FPC **dblib.pas** SQLDB pourrait utiliser la bibliothèque "native" **ntwdblib.dll** au lieu de la bibliothèque FreeTDS par défaut **dblib.dll** (dans ce cas, FPC a besoin d'être recompilé).
20+Utilisation avancée : en modifiant le fichier FPC **dblib.pas** SQLDB pourrait utiliser la bibliothèque "native" **ntwdblib.dll** au lieu de la bibliothèque FreeTDS par défaut **dblib.dll** (dans ce cas, FPC a besoin d'être recompilé).
1721
1822## Documentation
1923
20-Documentation officielle : [Documentation FPC sur mssqlconn](http://www.freepascal.org/docs-html/fcl/mssqlconn/index.html)
24+Documentation officielle : [Documentation FPC sur mssqlconn](<http://www.freepascal.org/docs-html/fcl/mssqlconn/index.html>)
2125
2226## Limitations et conseils
2327
24-- Port Sybase : le port par défaut pour Sybase ASE est le 5000. Comme FreeTDS/mssqlconn utilise 1433 par défaut, vous pouvez vouloir ajouter :5000 à la propriété hostname automatiquement ou après le retour d'information de l'utilisateur final.
28+ * Port Sybase : le port par défaut pour Sybase ASE est le 5000. Comme FreeTDS/mssqlconn utilise 1433 par défaut, vous pouvez vouloir ajouter :5000 à la propriété hostname automatiquement ou après le retour d'information de l'utilisateur final.
2529
26-Comme la documentation le spécifie :
30+Comme la documentation le spécifie :
2731
28-- vous pouvez avoir besoin affiner certains paramètres pour la prise en charge des BLOB.
29-- les ensembles résultats multiple de MS SQL (*multiple resultsets*,MARS) ne sont pas pris en charge.
32+ * vous pouvez avoir besoin affiner certains paramètres pour la prise en charge des BLOB.
33+ * les ensembles résultats multiple de MS SQL (_multiple resultsets_ ,MARS) ne sont pas pris en charge.
3034
3135### Paramètres de sorties et procédures stockées
3236
33-Aussi, **TMSSQLConnection** et **TSybaseConnection** ne prennent pas en charge la gestion des status de retour et les paramètres de sortie (*output parameters*) des procédures stockées. Pour plus d'information, voir : <http://www.freetds.org/faq.html#ms.output.parameters>.
34-
35-``` pascal
37+Aussi, **TMSSQLConnection** et **TSybaseConnection** ne prennent pas en charge la gestion des status de retour et les paramètres de sortie (_output parameters_) des procédures stockées. Pour plus d'information, voir : <http://www.freetds.org/faq.html#ms.output.parameters>.
38+```
3639with SQLQuery1 do begin
37- SQL.Text:='declare @param int; declare @ret int;'+
38- 'exec @ret=MyStoredProc 1, @param OUTPUT;'+
39- 'select @ret as return_status, @param as out_param';
40- Open;
41-end;
40+ SQL.Text:='declare @param int; declare @ret int;'+
41+ 'exec @ret=MyStoredProc 1, @param OUTPUT;'+
42+ 'select @ret as return_status, @param as out_param';
43+ Open;
44+ end;
4245```
4346
44-Quelques conseils de plus :
47+Quelques conseils de plus :
4548
46-- Vous pourriez vouloir faire un YourConnection.ExecuteDirect('SET ANSI_NULL_DFLT_ON ON'); si vous voulez permettre les valeurs NULL pour les colonnes à la création des tables. Voir la documentation : <http://msdn.microsoft.com/en-us/library/ms174979.aspx>.
47-- Vous pourriez vouloir de manière similaire définir SET ANSI_PADDING à ON pour activre ne meilleure compatibilité avec les fonctions de comparaison de texte de SQLdb. Voir la documentation MS : <http://msdn.microsoft.com/en-us/library/ms187403.aspx>.
49+ * Vous pourriez vouloir faire un YourConnection.ExecuteDirect('SET ANSI_NULL_DFLT_ON ON'); si vous voulez permettre les valeurs NULL pour les colonnes à la création des tables. Voir la documentation : <http://msdn.microsoft.com/en-us/library/ms174979.aspx>.
50+ * Vous pourriez vouloir de manière similaire définir SET ANSI_PADDING à ON pour activre ne meilleure compatibilité avec les fonctions de comparaison de texte de SQLdb. Voir la documentation MS : <http://msdn.microsoft.com/en-us/library/ms187403.aspx>.
4851
4952## Messages d'erreur
5053
5154### Error 20009 : Unable to connect: Adaptive Server is unavailable or does not exist
5255
53-- Vérifier si le protocole TCP/IP est activé sur le serveur SQL en utilisant "SQL Server Configuration Manager" - "SQL Server Network Configuration".
54-- Vérifier si le port TCP 1433 est ouvert.
55-- Si vous vous connecter à une instance spécifique de SQL Server (ce qui est aussi le cas de SQL Server Express), vérifier si le SQL Server Browser Service est en cours d'exécution sur le serveur (le service écoute sur le port UDP 1434).
56+ * Vérifier si le protocole TCP/IP est activé sur le serveur SQL en utilisant "SQL Server Configuration Manager" - "SQL Server Network Configuration".
57+ * Vérifier si le port TCP 1433 est ouvert.
58+ * Si vous vous connecter à une instance spécifique de SQL Server (ce qui est aussi le cas de SQL Server Express), vérifier si le SQL Server Browser Service est en cours d'exécution sur le serveur (le service écoute sur le port UDP 1434).
5659
5760### Erreur 20019 : Attempt to initiate a new Adaptive Server operation with results pending
5861
59-- Mettez la propriété TSQLQuery.PacketRecords à -1.
60-- Pour plus d'information, voir : <http://www.freetds.org/faq.html#pending>.
62+ * Mettez la propriété TSQLQuery.PacketRecords à -1.
63+ * Pour plus d'information, voir : <http://www.freetds.org/faq.html#pending>.
6164
6265### Erreur 20047 : DBPROCESS is dead or not enabled
6366
64-- SQL Server vérifie périodiquement (toutes les 30 secondes par défaut) si la connection TCP/IP idle est toujours intact en envoyant un paquet 'keep alive' à ses paires. Si le système distant est toujours joignable et en cours de fonctionnement, un paquet d'accusé de réception est envoyé en retour. Sinon, le TCP local réinitialisera la connexion.
65-- Ajuster SQL Server Configuration Manager -\> SQL Server Network Configuration -\> Protocols -\> TCP/IP : "Keep Alive".
67+ * SQL Server vérifie périodiquement (toutes les 30 secondes par défaut) si la connection TCP/IP idle est toujours intact en envoyant un paquet 'keep alive' à ses paires. Si le système distant est toujours joignable et en cours de fonctionnement, un paquet d'accusé de réception est envoyé en retour. Sinon, le TCP local réinitialisera la connexion.
68+ * Ajuster SQL Server Configuration Manager -> SQL Server Network Configuration -> Protocols -> TCP/IP : "Keep Alive".
6669
6770### EINOutError/Can not load DB-Lib client library "dblib.dll". Check your installation
6871
69-- Assurez-vous que toutes les dll nécessaires sont installées (p.ex. **dblib.dll**, **libiconv2.dll**)
70-- Assurez-vous que tout le bibliothèque d'exécution (*runtime libraries*) C/C++ dont dépend **dblib.dll** sont installées.
71-- Assurez-vous que la taille d'adressage (*bitness*, 32 ou 64 bit) de la bibliothèque dblib et celle de votre programme concordent.
72+ * Assurez-vous que toutes les dll nécessaires sont installées (p.ex. **dblib.dll** , **libiconv2.dll**)
73+ * Assurez-vous que tout le bibliothèque d'exécution (_runtime libraries_) C/C++ dont dépend **dblib.dll** sont installées.
74+ * Assurez-vous que la taille d'adressage (_bitness_ , 32 ou 64 bit) de la bibliothèque dblib et celle de votre programme concordent.
7275
7376## Exemples
7477
7578### Création d'une base de données
7679
77-L'exemple ci-dessous crée une base de données dans un serveur MS SQL. Pour cela, le paramètre de connection AutoCommit doit être mis à 'On'. Pour les connexion normale suivantes, vous pouvez le basculer à 'Off' à nouveau et utiliser les **StartTransaction** et **Commit** normales.
78-
79-``` pascal
80+L'exemple ci-dessous crée une base de données dans un serveur MS SQL. Pour cela, le paramètre de connection AutoCommit doit être mis à 'On'. Pour les connexion normale suivantes, vous pouvez le basculer à 'Off' à nouveau et utiliser les **StartTransaction** et **Commit** normales.
81+```
8082// Set up a form with a button called DBButton,
81-// textbox called DatabaseNameEdit,
82-// '''MSSQLConnection''' called FConn
83-// ***make sure the Autocommit parameter is on for the create db part before connectiong:
84-//FConn.Params.Add('AutoCommit=true');
85-procedure TForm1.CreateDBButtonClick(Sender: TObject);
86-var
87- CurrentDB: string;
88-begin
89- if DatabaseNameEdit.Text='' then
90- begin
91- showmessage('Empty database name. Please specify database name first.');
92- exit;
93- end;
94-
95- CurrentDB:=FConn.DatabaseName;
96- try
97- // For FPC 2.6.1+
98- FConn.ExecuteDirect('CREATE DATABASE '+DatabaseNameEdit.Text);
99- {
100- // This works with FPC 2.7.1, not on 2.6.1
101- FConn.CreateDB;
102- }
103- except
104- on E: Exception do
83+ // textbox called DatabaseNameEdit,
84+ // '''MSSQLConnection''' called FConn
85+ // ***make sure the Autocommit parameter is on for the create db part before connectiong:
86+ //FConn.Params.Add('AutoCommit=true');
87+ procedure TForm1.CreateDBButtonClick(Sender: TObject);
88+ var
89+ CurrentDB: string;
10590 begin
106- showmessage('Exception running CreateDB: '+E.Message);
91+ if DatabaseNameEdit.Text='' then
92+ begin
93+ showmessage('Empty database name. Please specify database name first.');
94+ exit;
95+ end;
96+
97+ CurrentDB:=FConn.DatabaseName;
98+ try
99+ // For FPC 2.6.1+
100+ FConn.ExecuteDirect('CREATE DATABASE '+DatabaseNameEdit.Text);
101+ {
102+ // This works with FPC 2.7.1, not on 2.6.1
103+ FConn.CreateDB;
104+ }
105+ except
106+ on E: Exception do
107+ begin
108+ showmessage('Exception running CreateDB: '+E.Message);
109+ end;
110+ end;
107111 end;
108- end;
109-end;
110112```
111113
112114---
113-*From the Free Pascal wiki, page "mssqlconn/fr", 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).*
115+*From the Free Pascal wiki, page "mssqlconn/fr", as the Internet Archive kept it on 2025-03-15, last changed on 2020-02-21. 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).*

Back to history