version 1.41, 2012/12/18 13:19:40
|
version 1.55, 2015/01/27 14:18:09
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.1.12 |
RPL/2 (R) version 4.1.20 |
Copyright (C) 1989-2012 Dr. BERTRAND Joël |
Copyright (C) 1989-2015 Dr. BERTRAND Joël |
|
|
This file is part of RPL/2. |
This file is part of RPL/2. |
|
|
Line 38
|
Line 38
|
struct_objet * |
struct_objet * |
parametres_sql(struct_processus *s_etat_processus, struct_objet *s_parametres) |
parametres_sql(struct_processus *s_etat_processus, struct_objet *s_parametres) |
{ |
{ |
#if defined(MYSQL_SUPPORT) || defined(POSTGRESQL_SUPPORT) |
|
struct_liste_chainee *l_element_courant; |
struct_liste_chainee *l_element_courant; |
|
|
struct_objet *s_connecteur; |
struct_objet *s_connecteur; |
Line 46 parametres_sql(struct_processus *s_etat_
|
Line 45 parametres_sql(struct_processus *s_etat_
|
unsigned char *locale; |
unsigned char *locale; |
unsigned char *type_base; |
unsigned char *type_base; |
unsigned char *serveur; |
unsigned char *serveur; |
|
# if defined(MYSQL_SUPPORT) || defined(POSTGRESQL_SUPPORT) |
unsigned char *base; |
unsigned char *base; |
unsigned char *utilisateur; |
unsigned char *utilisateur; |
unsigned char *mot_de_passe; |
unsigned char *mot_de_passe; |
Line 54 parametres_sql(struct_processus *s_etat_
|
Line 54 parametres_sql(struct_processus *s_etat_
|
# endif |
# endif |
|
|
unsigned int port; |
unsigned int port; |
|
# endif |
|
|
if ((*s_parametres).type != LST) |
if ((*s_parametres).type != LST) |
{ |
{ |
Line 75 parametres_sql(struct_processus *s_etat_
|
Line 76 parametres_sql(struct_processus *s_etat_
|
return(NULL); |
return(NULL); |
} |
} |
|
|
if ((type_base = conversion_majuscule((unsigned char *) |
if ((type_base = conversion_majuscule(s_etat_processus, (unsigned char *) |
(*(*l_element_courant).donnee).objet)) == NULL) |
(*(*l_element_courant).donnee).objet)) == NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
Line 95 parametres_sql(struct_processus *s_etat_
|
Line 96 parametres_sql(struct_processus *s_etat_
|
*/ |
*/ |
|
|
if ((strcmp(type_base, "MYSQL") != 0) && |
if ((strcmp(type_base, "MYSQL") != 0) && |
(strcmp(type_base, "POSTGRESQL") != 0)) |
(strcmp(type_base, "POSTGRESQL") != 0) && |
|
(strcmp(type_base, "SQLITE") != 0)) |
{ |
{ |
(*s_etat_processus).erreur_execution = d_ex_argument_invalide; |
(*s_etat_processus).erreur_execution = d_ex_argument_invalide; |
return(NULL); |
return(NULL); |
Line 158 parametres_sql(struct_processus *s_etat_
|
Line 160 parametres_sql(struct_processus *s_etat_
|
|
|
serveur = (unsigned char *) (*(*l_element_courant).donnee).objet; |
serveur = (unsigned char *) (*(*l_element_courant).donnee).objet; |
|
|
|
// Dans le cas d'une base de données SQLite, seul le nom du fichier |
|
// importe. |
|
|
|
if (strcmp(type_base, "SQLITE") == 0) |
|
{ |
|
if ((*l_element_courant).suivant != NULL) |
|
{ |
|
liberation(s_etat_processus, s_connecteur); |
|
(*s_etat_processus).erreur_execution = d_ex_argument_invalide; |
|
return(NULL); |
|
} |
|
|
|
(*((struct_connecteur_sql *) (*s_connecteur).objet)).descripteur.sqlite |
|
= NULL; |
|
|
|
if (sqlite3_open_v2(serveur, &((*((struct_connecteur_sql *) |
|
(*s_connecteur).objet)).descripteur.sqlite), |
|
SQLITE_OPEN_READWRITE, NULL) != SQLITE_OK) |
|
{ |
|
if ((*((struct_connecteur_sql *) (*s_connecteur).objet)) |
|
.descripteur.sqlite != NULL) |
|
{ |
|
sqlite3_close((*((struct_connecteur_sql *) |
|
(*s_connecteur).objet)).descripteur.sqlite); |
|
} |
|
|
|
liberation(s_etat_processus, s_connecteur); |
|
(*s_etat_processus).erreur_execution = d_ex_erreur_sql; |
|
return(NULL); |
|
} |
|
|
|
return(s_connecteur); |
|
} |
|
else |
|
{ |
|
# if !(defined(MYSQL_SUPPORT) || defined(POSTGRESQL_SUPPORT)) |
|
if ((*s_etat_processus).langue == 'F') |
|
{ |
|
printf("+++Attention : Support de %s non compilé !\n", type_base); |
|
} |
|
else |
|
{ |
|
printf("+++Warning : %s support not available !\n", type_base); |
|
} |
|
# endif |
|
} |
|
|
|
# if defined(MYSQL_SUPPORT) || defined(POSTGRESQL_SUPPORT) |
// Recherche du nom de la base de données |
// Recherche du nom de la base de données |
|
|
l_element_courant = (*l_element_courant).suivant; |
l_element_courant = (*l_element_courant).suivant; |
Line 353 parametres_sql(struct_processus *s_etat_
|
Line 403 parametres_sql(struct_processus *s_etat_
|
(*s_etat_processus).erreur_execution = d_ex_argument_invalide; |
(*s_etat_processus).erreur_execution = d_ex_argument_invalide; |
return(NULL); |
return(NULL); |
} |
} |
|
# endif |
|
|
return(s_connecteur); |
return(s_connecteur); |
#else |
|
return(NULL); |
|
#endif |
|
} |
} |
|
|
// vim: ts=4 |
// vim: ts=4 |