FORUMS PROFESSIONNELS
WINDEV
,
WEBDEV
et
WINDEV Mobile
Accueil
|
Messages récents
|
Connexion
|
Déconnexion
|
Français
Accueil
→
WINDEV 2024
→
Error en trigger
Error en trigger
Débuté par Raül Vidiella, 08 juil. 2015 10:12 - Aucune réponse
Connectez-vous…
Raül Vidiella
#1
Posté le 08 juillet 2015 - 10:12
Buenos dias
Tengo un procedimiento almacenado en el servidor, el cual se asigna a
varios triggers de fichero. Simplemente lo que hace es guardar un
registro con las modificaciones que se hacen en el fichero al cual le
asignamos el trigger. Simplemente buscamos los datos necesarios y
mediante sql insertamos registro en la tabla de log. Para averiguar el
ID del registro hemos tenido que poner un switch para especificar cual
es el campo que contiene el id segun el fichero en el que estamos. Pues
bien la instruccion "sTableName = MyFile..PhysicalName" funciona
perfectamente en todos los casos y ficheros excepto en el caso del
fichero "COMANDESVENDA" que falla en la inserción de registros, error:
utilización de myfile fuera de un trigger.
Es por no hacer un procedimiento para cada fichero.
Alguna idea ????? os dejo el procedimiento en concreto:
Un saludo y gracias
Raül Vidiella
PROCEDURE TGR_UpdatePR_Log()
// variables del triggers
sFuncio is string = Upper(Left(H.TriggerFunction,3)) // Tipo de acción
que se está ejecutando
sAccio is string = H.Action //Antes o después de las acciones
IF sAccio="A" THEN //Antes de
ELSE //Después de grabar datos
sConsulta is string
//Obtener el nombre(String) del ID de la tabla
sTableName is string
nID is int on 8 bytes
sTableName = MyFile..PhysicalName
SWITCH Upper(sTableName)
CASE "CLIENTS_RISC"
nID=MyFile.ClientsID
CASE "CLIENTS"
nID=MyFile.ClientsID
CASE "ARTICLES"
nID=MyFile.ArticlesID
CASE "PREUS"
nID=MyFile.PreusID
CASE "COMANDESVENDA"
nID=MyFile.ComandesVendaID
OTHER CASE
nID=0
END
// apuntar registro si es el caso
IF nID THEN
sConsulta = "INSERT INTO PR_Log (datahora, usuari, taulaid,
registreid, accion) values ('"+Today()+Now()+"','" +
HRuntimeInfo.Login+"','"+ sTableName +"',"+nID+",'"+ sFuncio +"')"
IF HExecuteSQLQuery(dsPrLogs, hQueryWithoutHFCorrection, sConsulta) THEN
// no passa res
END
END
END
---
avast! Antivirus: Mensaje saliente limpio.
Base de datos de Virus (VPS): 150707-0, 07/07/2015
Comprobado el: 08/07/2015 10:12:05
avast! - copyright (c) 1988-2015 AVAST Software.
https://www.avast.com/antivirus
Signaler
0
0
→ Revenir à WINDEV 2024
WINDEV 2024
WEBDEV 2024
Français
English
Español
Portuguesa
Fermer cette fenêtre
Type de recherche
Uniquement les sujets
Tous les messages
Période de recherche
Date indifférente
Moins d'une heure
Moins de 24 heures
Moins d'une semaine
Moins d'un mois
Moins d'un an
Annuler
Aperçu de votre message
Ajouter une image
Importer une image depuis une URL
Envoyer une image depuis un fichier de votre disque
Déposez ici un fichier ou cliquez sur "Parcourir..."
ou
Annuler
0%
WLangage
SQL
XML, HTML
JAVA, Javascript
Texte