Précédent   Forum des professionnels en informatique > Bases de données > Firebird > SQL
SQL Forum d'entraide sur le SQL pour Firebird
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/03/2007, 14h08   #1
Invité régulier
 
Inscription : août 2005
Messages : 17
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 17
Points : 6
Points : 6
Par défaut Firebird + Procedure + Variable + Update + Invalid BLR

Bonjour,

Lorsque j'exécute la requête suivante avec MiTec Interbase Query j'obtiens "invalid request BLR at offset 75. Undefined message number". Si je l'exécute avec IBConsole ou que je remplace le ":aDV" du Update par 0 (par exemple), la procédure est correctement créée.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE PROCEDURE Update_260307
AS
  DECLARE VARIABLE aDV TIMESTAMP;
begin
 
  FOR SELECT date_vente
        FROM ventes
        INTO aDV do
  BEGIN
    UPDATE ventes
      SET date_vente=:aDV;
  END
end ^
Y-a-t-il une restriction de langage pour ce type de requête ? Faut-il préciser quelque chose que IBConsole fait automatiquement ?

Merci d'avance pour vos excellentes suggestions.

PS :
J'utilise une .GDB.
thedev7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/03/2007, 14h20   #2
Modérateur
 
Avatar de Cl@udius
 
Homme Claude Renouleaud
Développeur informatique
Inscription : février 2006
Messages : 4 758
Détails du profil
Informations personnelles :
Nom : Homme Claude Renouleaud
Âge : 49
Localisation : France, Hautes Pyrénées (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2006
Messages : 4 758
Points : 6 779
Points : 6 779
Salut

Je ne te donnerai pas une explication pour ton message d'erreur, mais elle est censée faire quoi ta PS ?
Il ne manquerait pas un WHERE dans la requête UPDATE ?

Citation:
Envoyé par thedev7
PS :
J'utilise une .GDB.
Quel est l'intérêt ?

@+ Claudius
__________________
A la question technique que par MP/MV tu formuleras, la réponse aux oubliettes finira.
Cl@udius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/03/2007, 15h00   #3
Expert Confirmé Sénior
 
Avatar de qi130
 
Homme Pierre
Ingénieur qualité méthodes
Inscription : mars 2003
Messages : 3 726
Détails du profil
Informations personnelles :
Nom : Homme Pierre
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Finance

Informations forums :
Inscription : mars 2003
Messages : 3 726
Points : 4 739
Points : 4 739
Ne serait-ce pas
Citation:
Envoyé par Cl@udius
Quel est l'intérêt ?
+1 , surtout que je ne m'explique pas la manip: datevente-> :adv-> datevente
__________________
"Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
-----------------------
Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
Usus magister est optimus
qi130 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/03/2007, 16h40   #4
Invité régulier
 
Inscription : août 2005
Messages : 17
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 17
Points : 6
Points : 6
Merci pour les réponses.

L'explication du code tient dans le fait que j'ai simplifié au maximum ma requête pour isoler l'erreur et effectivement normalement il y a un where (qui sélectionne les ventes de dates proches (< 5sec) pour leur assigner la même date et ainsi corriger une erreur précédente qui m'a différencié de quelques millisecondes des ventes faisant partie d'un ensemble fait à la même date).

Le : est fortement conseillé avec IBConsole. Mais avec IBQuery il donne lieu à une erreur comme quoi le paramètre n'est pas défini ou un truc dans le genre parce qu'il ne peut pas remplacer le ":Adv" par une variable (into attend une variable non une valeur !).

Ensuite, il n'y aucun intérêt à utiliser un .gdb avec Firebird sauf pour raison de compatibilité. J'ai malheureusement déployé deux fois mon logiciel avec Interbase avant qu'on me fasse remarquer que c'est beaucoup mieux avec Firebird. J'ai donc conservé un fichier .gdb.

Enfin, la réponse n'est plus vraiment urgente (mais elle m'intéresse quand même) parce que je l'ai remplacé par une requête lourde.

Vive la programmation !
thedev7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/03/2007, 18h06   #5
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 215
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant spécialité Firebird
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 2 215
Points : 3 318
Points : 3 318
Citation:
Envoyé par thedev7
Ensuite, il n'y aucun intérêt à utiliser un .gdb avec Firebird sauf pour raison de compatibilité. J'ai malheureusement déployé deux fois mon logiciel avec Interbase avant qu'on me fasse remarquer que c'est beaucoup mieux avec Firebird. J'ai donc conservé un fichier .gdb.
ça n'a rien à voir !
tu peux nommer tes bases comme tu veux .gdb, .fdb, .blou, .toto
le problème du .gdb c'est avec Windows XP qui met ces types de fichiers sous surveillance et donc génére des ralentissements terribles
et ça que ce soit avec Interbase ou Firebird
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h59.


 
 
 
 
Partenaires

Hébergement Web