Foros del Web » Creando para Internet » Flash y Actionscript »

Insertar registro si no existe

Estas en el tema de Insertar registro si no existe en el foro de Flash y Actionscript en Foros del Web. Hola! Tengo una tabla clientes y quiero hacer una comparación con el registro a ingresar, si este existe que aparezca un mensaje y caso contrario ...
  #1 (permalink)  
Antiguo 19/06/2008, 13:42
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Insertar registro si no existe

Hola!
Tengo una tabla clientes y quiero hacer una comparación con el registro a ingresar, si este existe que aparezca un mensaje y caso contrario que lo inserte.

Tengo la lógica pero no se muy bien como aplicarla, les paso algo que arme que si bien no me da error, no funciona... pero sería la idea, quizás deba recorrer la tabla de otra forma...

Código:
private function compararCliente():void {
	var query:SQLStatement = new SQLStatement();
	query.sqlConnection = conexion;
	query.text = "SELECT * FROM clientes";
		
	if (query.parameters[":codigo"] == codigo_txt.text) {
			
		Alert.show("Registro existente");
	}	
	else {	
		insertCliente();
	}
}
Muchas gracias!!!
__________________
Saludos!!!
Maru.-
  #2 (permalink)  
Antiguo 19/06/2008, 16:02
Avatar de jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 19 años, 4 meses
Puntos: 43
Respuesta: Insertar registro si no existe

Cita:
Iniciado por Maru77 Ver Mensaje
Hola!
Tengo una tabla clientes y quiero hacer una comparación con el registro a ingresar, si este existe que aparezca un mensaje y caso contrario que lo inserte.

Tengo la lógica pero no se muy bien como aplicarla, les paso algo que arme que si bien no me da error, no funciona... pero sería la idea, quizás deba recorrer la tabla de otra forma...

Código:
private function compararCliente():void {
	var query:SQLStatement = new SQLStatement();
	query.sqlConnection = conexion;
	query.text = "SELECT * FROM clientes";
		
	if (query.parameters[":codigo"] == codigo_txt.text) {
			
		Alert.show("Registro existente");
	}	
	else {	
		insertCliente();
	}
}
Muchas gracias!!!
Hola Maru77 !

No es necesario que recorras la tabla, puedes eso hacerlo desde tu consulta para verificar si el cliente existe:

Código PHP:
var query:String "SELECT 1 FROM Clientes WHERE codigo =" codigo_txt.text
En cuanto al código, tienes unos errores, debes de escuchar por el evento que te notifia cuando se obtuvieron los resultados, por ejemplo:

Código PHP:
var query:SQLStatement = new SQLStatement();
query.sqlConnection conexion;
query.text "SELECT 1 FROM Clientes WHERE codigo =" codigo_txt.text;
query.addEventListener(SQLEvent.RESULTonResult);
query.execute();

funciton onResult(evt:SQLEvent):void {
     var 
result:SQLResult evt.target.getResult();

Saludos !
__________________
Una contraseña es como la ropa interior. No deberías dejarlas afuera a la vista de otras personas, deberías cambiarla regularmente, y ni se te ocurra prestarla a extraños.
  #3 (permalink)  
Antiguo 20/06/2008, 12:37
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Respuesta: Insertar registro si no existe

Gracias por tu ayuda Jahepi!

Probé el código que me pasaste:

Código:
private function compararCliente():void {
	var query:SQLStatement = new SQLStatement(); 
	query.sqlConnection = conexion; 
	query.text = "SELECT 1 FROM clientes WHERE codigo =" + codigo_txt.text; 
	query.addEventListener(SQLEvent.RESULT, onResult); 
	query.execute(); 
		
	function onResult(event:SQLEvent):void { 
  	   var result:SQLResult = event.target.getResult(); 
	}  		
	   insertCliente(); // Llama a la funcion que hace la inserción de datos.		
	}
Pero me salta el siguiente error:

SQLError: 'Error #3115: SQL Error.', details:'no such column: 123', operation:'execute'
at flash.data::SQLStatement/internalExecute()
at flash.data::SQLStatement/execute()

Busqué en la web y modifiqué algunas cosas pero sigue con lo mismo.
__________________
Saludos!!!
Maru.-
  #4 (permalink)  
Antiguo 22/06/2008, 20:54
Avatar de carlxime  
Fecha de Ingreso: marzo-2007
Ubicación: México
Mensajes: 180
Antigüedad: 17 años, 1 mes
Puntos: 6
Respuesta: Insertar registro si no existe

Hola Maru77,

Espero que estés bien.

Puedes hacerlo de la siguiente forma:

Código:
private function compararCliente():void {
	var query:SQLStatement = new SQLStatement();
	query.sqlConnection = conexion;
	query.text = "SELECT 1 FROM clientes WHERE codigo = :codigo";
	query.parameters[":codigo"] = codigo_txt.text;
	
	try {
		query.execute();
		
		var result:SQLResult = query.getResult();
			
		if(result.data != null)
			Alert.show("Registro existente");
		else
		       	insertCliente();
	}
	catch(error:SQLError) {
		trace("Error: " + error.toString());
	}		
}
No sé cómo se llame el nombre de la columna (de la tabla clientes) que quieres verificar, en este caso puse codigo.

Saludos.

Carla
  #5 (permalink)  
Antiguo 25/06/2008, 10:16
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Respuesta: Insertar registro si no existe

Carla... you're awesome!
It works!

Gracias!!!
__________________
Saludos!!!
Maru.-
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:45.