Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326

    [delphi] Trigger in tabella Interbase

    Ciao a tutti, ciao Alka,

    sto provando ad utilizzare un Trigger in una tabella di IBDatabase.

    ho la seguente tabella:
    codice:
    CREATE TABLE TABELLA (
        CODICE     VARCHAR(8) CHARACTER SET NONE NOT NULL,
        COGNOME    VARCHAR(40) CHARACTER SET NONE,
        NOME       VARCHAR(40) CHARACTER SET NONE,
        NOMETR     VARCHAR(81) CHARACTER SET NONE
    );
    e ho sritto questo Trigger al fine di ottenere come risultato nel field NOMETR l'unione dei campi COGNOME + NOME
    codice:
    CREATE TRIGGER TABELLA_BI0 FOR TABELLA
    ACTIVE BEFORE INSERT POSITION 0
    AS
    begin
      /* Trigger text */
      new.nometr = upper(new.cognome) || upper(new.nome);
    end
    
    CREATE TRIGGER TABELLA_BU0 FOR TABELLA
    ACTIVE BEFORE UPDATE POSITION 0
    AS
    begin
      /* Trigger text */
      new.nometr = upper(new.cognome) || upper(new.nome);
    end
    questi funzionano bene.

    a me servirebbe una funzione TRIM che elimina gli spazi da destra e sinistra delle stringhe.

    mi sapete dire come posso fare?

    e sapete indicarmi dove posso trovare un help delle funzioni che e' possibile utilizzare?

    grazie
    fulvio

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465
    Non credo che sia disponibile una funzione nativa di Trim.

    In tutti i casi in cui devi affidare l'elaborazioni di dati lato server usando funzioni non standard, devi servirti delle famose UDF (User Defined Functions): si tratta di semplici librerie, realizzabili anche in Delphi (non mi ci sono mai addentrato, però), che forniscono funzioni importabili all'interno di InterBase e richiamabili da trigger e stored procedure.

    Dovresti trovarne una descrizione nella documentazione che ti sei procurato.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    grazie Marco, sei sempre perciso!

    ho trovato anke un file .sql dove sono gia disponibili le funzioni che mi interessavano. mi e' bastato caricarle nel database ed e' stato facile risolvere i problemi che mi ponevo.

    inoltre, ho visto che le UDF dichiarate, possono anke essere usate nella costruzione dei campi COMPUTED.
    codice:
    DECLARE EXTERNAL FUNCTION ltrim 
    	CSTRING(80)
    	RETURNS CSTRING(80) FREE_IT
    	ENTRY_POINT 'IB_UDF_ltrim' MODULE_NAME 'ib_udf';
    
    DECLARE EXTERNAL FUNCTION rtrim 
    	CSTRING(80)
    	RETURNS CSTRING(80) FREE_IT
    	ENTRY_POINT 'IB_UDF_rtrim' MODULE_NAME 'ib_udf';
    grazie
    fulvio

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.