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 16/03/2007, 13h19   #1
Membre chevronné
 
Avatar de defluc
 
Architecte
Inscription : mai 2002
Messages : 1 057
Détails du profil
Informations personnelles :
Âge : 62

Informations professionnelles :
Activité : Architecte

Informations forums :
Inscription : mai 2002
Messages : 1 057
Points : 745
Points : 745
Par défaut Fonction Trim inconnu

Bonjour

Je voudrais enlever les espaces en fin de champs et toutes les instructions suivantes testées sur une DB Firebird 1.5 via l'éditeur SQL de ibexpert donnent le message function unknown.

Code :
SELECT DISTINCT trim(RefCadCle) FROM "TableBien"
Code :
SELECT DISTINCT rtrim(RefCadCle) FROM "TableBien"
Code :
SELECT DISTINCT ltrim(RefCadCle) FROM "TableBien"
Pourtant, d'après la doc, les deux dernières fonctions au moins devraient être en standard dans firebird.

Merci d'avance pour votre aide
defluc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2007, 13h23   #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

Les fonctions RTRIM et LTRIM sont des UDFs contenues dans ib_udf.dll.

@+ 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 16/03/2007, 13h41   #3
Membre chevronné
 
Avatar de defluc
 
Architecte
Inscription : mai 2002
Messages : 1 057
Détails du profil
Informations personnelles :
Âge : 62

Informations professionnelles :
Activité : Architecte

Informations forums :
Inscription : mai 2002
Messages : 1 057
Points : 745
Points : 745
Mon application, qui tourne sous Delphi, installe Firebird comme service.
Ce service est bien entendu fermé avec mon application.

Comme ExecSql de l'instruction en question débouche sur une erreur, je ne ferme pas mon application pour que Firebird reste actif, j'ouvre IbExpert et je l'exécute avec le même résultat.

Je ne pense dès lors pas avoir la maitrise de l'utilisation de fbudf.dll.
defluc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2007, 13h51   #4
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
Re,

Les fonctions UDFs doivent être définies pour chacune de tes bases de données qui les utilisent.

Depuis IBExpert pour ta base de données tu définis une nouvelle UDF.
Pour exemple voici la définition de la fonction RTRIM:
Code :
1
2
3
4
5
 
DECLARE EXTERNAL FUNCTION RTRIM
    CSTRING(255)
RETURNS CSTRING(255) FREE_IT
ENTRY_POINT 'IB_UDF_rtrim' MODULE_NAME 'ib_udf'
[edit] dans le sous-dossier UDF de ton install Firebird, tu as des scripts tout prêts qui déclarent les fonctions à ta place. [/edit]

@+
__________________
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 16/03/2007, 14h12   #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 defluc
Mon application, qui tourne sous Delphi, installe Firebird comme service.
Ce service est bien entendu fermé avec mon application.
et c'est quoi l'interêt de fermer le service ?
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2007, 14h58   #6
Membre chevronné
 
Avatar de defluc
 
Architecte
Inscription : mai 2002
Messages : 1 057
Détails du profil
Informations personnelles :
Âge : 62

Informations professionnelles :
Activité : Architecte

Informations forums :
Inscription : mai 2002
Messages : 1 057
Points : 745
Points : 745
L'intérêt de fermer le service, c'est de ne pas maintenir une machine encombrée alors que ce n'est pas nécessaire puisque l'application appelante est elle même fermée.

Pour le reste, l'UDF est définie mais son appel génère le message d'erreur suivant
Citation:
Unsuccessful execution caused by a system error that precludes
successful execution of subsequent statements.
Access to UDF library "FbUDF.DLL" is denied by server administrator.
, ce qui est logique puisque IBexpert ignore où se trouve la dll.

Y-a-t-il un répertoire par défaut où cette dll pourrait être copiée lors de l'installation de l'application.
defluc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2007, 16h46   #7
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
je maintiens, aucun intéret le service dans ce cas
il vaut mieux utiliser la version embeded si c'est pour faire du mono poste
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2007, 17h06   #8
Membre chevronné
 
Avatar de defluc
 
Architecte
Inscription : mai 2002
Messages : 1 057
Détails du profil
Informations personnelles :
Âge : 62

Informations professionnelles :
Activité : Architecte

Informations forums :
Inscription : mai 2002
Messages : 1 057
Points : 745
Points : 745
Mon intention est la mise au point en monoposte et le passage à une version client/serveur plus tard.

A part cela, je reste sur mon petit problème de dossier par défaut de la dll.

J'ai mis
UdfAccess = Restrict [MyApp]\udf
dans Firebird.conf et le fichier FbUdf.dll est bien dans ce dossier j'ai toujours l'erreur de mon précédent post.
defluc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2007, 18h31   #9
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
passons sur monoposte ou pas et lancer ou pas le service qui reste n'importe quoi, de toutes façons Firebird est du client serveur même en monoposte

sur ton udf quel OS ?
comment l'installation a t elle été faite ?
manifestement c'est un simple problème de droits
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2007, 19h03   #10
Membre chevronné
 
Avatar de defluc
 
Architecte
Inscription : mai 2002
Messages : 1 057
Détails du profil
Informations personnelles :
Âge : 62

Informations professionnelles :
Activité : Architecte

Informations forums :
Inscription : mai 2002
Messages : 1 057
Points : 745
Points : 745
Actuellement, je tourne sous Windows XP Pro.
L'installation se fait par copie de l'application et de la base de données dans le répertoire choisi via la boite de dialogue de Inno Setup.
Puis, Inno Setup copie sous ce répertoire, les dossiers Bin, Intl et Udf de Firebird ainsi que FbClient dans le répertoire Sytem.
defluc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2007, 22h04   #11
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
cette manière de faire correspond exactement à la version embeded bien plus simple à déployer et n'oblige pas à lancer un service
donc je persiste à dire que s'amuser à gérer un service est idiot

vraiment c'est un problème de droit d'acces via l'OS à la dll rien de plus
__________________
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 21h16.


 
 
 
 
Partenaires

Hébergement Web