PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 Re : Perl » Envoyé default et non "default" a postgresql » 20/04/2011 11:41:33

ça marche !!  je crois que j'ai trouvé mon Dieu sur terre big_smile lol merci !!!

cordialement ZouZou

#2 Re : Perl » Envoyé default et non "default" a postgresql » 20/04/2011 11:36:52

ha d'accord ! j'imaginais pas ça comme ça smile

je vous remercie Marc, je vais essayé de faire une bidouille dans le genre smile je vous tiendrais au courant si j'ai réussie

merci beaucoup

#3 Re : Perl » Envoyé default et non "default" a postgresql » 20/04/2011 11:02:29

Bonjour Marc,

merci de votre intervention rapide.
je vous montre les parties de mon code qui effectue ce traitement.

voici l'affectation de default a ma variable :

 
sub par_default{
	my $valeur=$_[0];
	if ($valeur eq "" or $valeur == 0){
		my $valeur="default";
		return $valeur;
	}
	else {
		return $valeur;
	}
}

extrait du script  qui insére dans la base de donnée:

 		
                        while ($ligne=<NEW_DONNE>){
			chomp($ligne);
			my ($module,$elem,@rest)= split /;/,$ligne;
			if ($module eq "" or $elem eq""){
				print "Les informations sont manquante \npas d'insertion dans la base pour la ligne $ligne \n";
			}
			else {
				my $req1="select nom_module from description_module where nom_module=?";
				my $modul_existe=$db->prepare($req1);
				$modul_existe->execute($module);
				my $test=$modul_existe->rows;
				if ($test == 0){
					print "$module n'existe pas \n";
					#on crée
					if ( $elem =~ /^([0-9]{1,3}\.){3}[0-9]{1,3}$/){
						if (&adresse_valide($elem)){

							my ($surv,$freq_ex,$periode,$freq_attente)= @rest;
							$surv = &par_default($surv);
							$freq_ex = &par_default($freq_ex);
							$periode = &par_default($periode);
							$freq_attente = &par_default($freq_attente);

                                                        my $req_add_module="insert into description_module (nom_module, surveillance_recherche, requence_d_execution_du_module, Periode_d_attente_entre_deux_executions, Frequence_d_interogation_du_module, Adresse_ip) VALUES (?,?,?,?,?,?)";
                                                        my $add_module=$db->prepare($req_add_module);
                                                        print "$module,$surv,$freq_ex,$periode,$freq_attente,$elem\n";
                                                       $add_module->execute($module,$surv,$freq_ex,$periode,$freq_attente,$elem);


							$add_module->finish();
						}
						else{

							print "adresse non valide, l'ajout dans la base impossible \nVeuiller indiquer une adresse conforme pour la ligne $ligne \n";
						}
					}

voila j'espère que vous comprendrez ce que je veux faire ^^

#4 Perl » Envoyé default et non "default" a postgresql » 20/04/2011 10:48:27

ZouZou
Réponses : 5

Bonjour,

Je reviens vous voir avec nouveau défis:).

J’ai un script en perl qui lis un fichier ligne par ligne, vérifie la validité de informations contenue dans la ligne et les ajoutes dans ma base.

Une partie de mon script a pour but d’affecter dans ma base la valeur par défaut indiquer dans ma base, si l’élément est manquant. J’affecte donc à ma variable « default ».

Mon problème arrive au moment d’exécuté ma requête. J’obtiens le message d’erreur : «ERROR:  value for domain situation_recherche violates check constraint ».
Si j’ai bien compris le problème  lors de mon insert into, default est lu comme ça :
« Insert into table_exemple (v1,v2,v3) values(‘toto’,’default’,’12 ans’ );»,

Je souhaiterais savoir s’il est possible de faire comprendre à la base de donnée que la requête doit ce lire comme ça: « Insert into table_exemple (v1,v2,v3) values(‘toto’,default,’12 ans’ );».
Ou dois-je commencer à chercher une autre solution ? ^^

Cordialement ZouZou

#5 Re : Général » Code retour d'une instruction sql vide » 15/04/2011 16:00:04

j'ai un peut honte :$ ça fait deux jours que je m'arrache les cheveux sur ce problème et au final c'est pas compliquer du tout a résoudre. T_T

je vous remercie pour vos réponses et de vos explications !!! j'ai encore gagné en connaissance encore aujourd'hui  grâce a vous ^^:p.

PS: je passe régulièrement sur votre forum et apprécie la qualité de vos réponses !  UN GRAND MERCI smile

Cordialement ZouZou

#6 Re : Général » Code retour d'une instruction sql vide » 15/04/2011 15:48:33

Bonjour Gleu,

merci pour ta réponse très rapide smile.

j'ai oublié de mentionné que je débute également en perl.
Pour ma défense je n'ai pas vue d'option row pour le module DBI dans les docs que j'ai trouvé. ^^
je vais donc orienté mes recherches sur ce qui pourrait s'en rapprocher !
et vous tiendrais au courant !! merci smile

#7 Général » Code retour d'une instruction sql vide » 15/04/2011 15:41:46

ZouZou
Réponses : 10

Bonjour, bonjour smile,

Je viens vous solliciter  car j’ai un petit problème dans l’élaboration d’un script. smile

Je vous explique, je suis en stage actuellement et j’utilisé Postgresql (pour la première fois). Je me suis plutôt vite familiarisé avec l’éléphant mais pas encore assez pour qu’il me dévoile tout ses secrets !

Mon problème est que je crée donc un script en Perl et j’interroge une base de données avec un simple select wink. Tout ce passe très bien…. Sauf quant il n’y a pas de valeurs en réponse a ma requête. hmm

En gros si j’effectue cette requête avec une valeur qui n’existe pas, directement dans ma base j’obtiens un jolie (0 row) (ce qui est normal vous me direz ^^). Oui ! élas j’ai besoin du résultat de cette requête, même s’il n’y a rien à retourner pour effectuer un test.

Je me demande s’il est possible de récupère un numéro ou quelque chose comme un code retour, permettant d’identifier un résultat vide ???  auriez-vous une idée ^^ ?

J’espère que j’ai été claire ^^.

Cordialement  ZouZou.

Pied de page des forums

Propulsé par FluxBB