RoadMap : PostgreSql bientôt supporté par PureBasic ?
Le 2009-07-23 19:26:44, par comtois, Responsable Purebasic
Fred (l'auteur de PureBasic) souhaitait proposer un plugin pour supporter MySql simplement dans PureBasic, malheureusement, ça ne sera pas possible pour une question de licence :
Envoyé par Fred
Certains lui proposaient d'intégrer FireBird, et Fred semble vouloir s'orienter vers PostgreSql, à suivre...
Envoyé par Fred
-
comtoisResponsable PurebasicFred n'a pas tardé, c'est déjà intégré dans la 4.40- Added UsePostgreSQLDatabase()le 18/08/2009 à 5:04
-
comtoisResponsable PurebasicEt voila mon premier essai avec PostgreSQL , je suis content ça marche
Maintenant je n'ai plus qu'à lire les FAQ et tutoriels sur PostgreSQL.Code : 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34Procedure CheckDatabaseUpdate(Database, Query$) Result = DatabaseUpdate(Database, Query$) If Result = 0 Debug DatabaseError() EndIf ProcedureReturn Result EndProcedure UsePostgreSQLDatabase() ; You should have a server running on localhost ; If OpenDatabase(0, "host=localhost port=5432", "postgres", "postgres") CheckDatabaseUpdate(0, "CREATE TABLE food (name CHAR(50), weight INT)") CheckDatabaseUpdate(0, "INSERT INTO food (name, weight) VALUES ('apple', '10')") CheckDatabaseUpdate(0, "INSERT INTO food (name, weight) VALUES ('pear', '5')") CheckDatabaseUpdate(0, "INSERT INTO food (name, weight) VALUES ('banana', '20')") If DatabaseQuery(0, "SELECT * FROM food WHERE weight > 7") While NextDatabaseRow(0) Debug GetDatabaseString(0, 0) Wend FinishDatabaseQuery(0) EndIf Else Debug "Can't open database !" EndIf
le 02/09/2009 à 13:24 -
comtoisResponsable PurebasicEt là j'ai testé un des codes de la FAQ, je voulais surtout comparer la syntaxe avec PureBasic.
Tester si un nombre est impairCode : 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47Procedure CheckDatabaseUpdate(Database, Query$) Result = DatabaseUpdate(Database, Query$) If Result = 0 Debug DatabaseError() EndIf ProcedureReturn Result EndProcedure UsePostgreSQLDatabase() ; You should have a server running on localhost ; If OpenDatabase(0, "host=localhost port=5432", "postgres", "postgres") ;Valider les 2 lignes qui suivent si vous avez une erreur (pas de langage) ;t$ = "CREATE LANGUAGE plpgsql;" ;checkDatabaseUpdate(0, t$) t$ = "CREATE Or REPLACE FUNCTION public.estimpair (nombre integer) RETURNS boolean As " t$ + "$body$" t$ + "/* Cette fonction retourne true (vrai) si le nombre passé en argument est impair" t$ + " Exemple : Select estimpair(12);" t$ + " false" t$ + "*/" t$ + "BEGIN" t$ + " Return nombre % 2!=0;" t$ + "End;" t$ + "$body$" t$ + "LANGUAGE plpgsql;" checkDatabaseUpdate(0, t$) ; à partir d'ici on peut interroger la fonction If DatabaseQuery(0, "Select estimpair(13);") While NextDatabaseRow(0) Debug GetDatabaseString(0, 0) Wend FinishDatabaseQuery(0) EndIf Else Debug "Can't open database !" EndIf
le 02/09/2009 à 20:05 -
Progi1984Membre éprouvéQuelques améliorations possibles :
Tu peux remplacer ta procédure par une macro.
Tu as oublié un retour à la ligne aprés "; à partir d'ici on peut interroger la fonction".
Avant de faire le CREATE Or REPLACE FUNCTION, tu devrais faire la vérification que "CREATE LANGUAGE plpgsql;" est fonctionnelle
PS: tu n'es pas obligé de faire une fonction pgsql pour que ca marchele 02/09/2009 à 21:44 -
comtoisResponsable PurebasicJe n'ai pas encore lu les tutoriels sur PostgreSQL, je voulais d'abord vérifier que ça fonctionnait bien avec la 4.40
Je me suis contenté de saisir un code que je ne comprends pas, du moins pas dans le détail , ça me permet de savoir que ça existe, reste à étudier les subtilités.le 02/09/2009 à 21:52 -
comtoisResponsable PurebasicAvec la doc c'est mieux, voici enfin la syntaxe pour ouvrir une base PostgreSQL:A PostgreSQL database has to be connected using OpenDatabase() before using any other database functions. PostgresSQL specific parameters can be passed in the 'DatabaseName$' parameter of OpenDatabase():
- host: Name of host to connect to.
- hostaddr: Numeric IP address of host to connect to.
- port: Port number to connect to at the server host.
- dbname: The database name. Defaults to be the same as the user name.
- connect_timeout: Maximum wait for connection, in seconds (write as a decimal integer string).
Zero or not specified means wait indefinitely.
It is not recommended to use a timeout of less than 2 seconds.le 16/09/2009 à 13:12