Delphi - `pr qu eno puedo realizar un INSERT

 
Vista:

`pr qu eno puedo realizar un INSERT

Publicado por risos (7 intervenciones) el 11/12/2004 06:28:15
HOLA AL TRATAR HACER UN INSERT ME ARROJA EL SGUIENTE ERROR
ERROR CREATING CURSOR HANDLE?
LEI POR HAY QUE AL DEFINIR EL QUERY.OPEN LO PRODUCIA PERO LO CAMBIE POR EL QUERY EXECSAL Y NO RESULTAMPO QUE PUEDE SER LO QUE TENGO MALO.?
:(
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:`pr qu eno puedo realizar un INSERT

Publicado por Dr Juzam (821 intervenciones) el 11/12/2004 06:35:32
¿Qué componetes usas? ¿Qué BD atacas? ¿Cómo son las instrucciones SQL y el código donde llamas a los Querys?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:`pr qu eno puedo realizar un INSERT

Publicado por Risos (7 intervenciones) el 11/12/2004 07:33:40
utilizo tquery en la query esta lo siguiente
INSERT INTO Cheque(numero_serie,nombre_banco,numero_cuenta,nombre_dueño,fono_dueño) VALUES (:num, :nom_b, :num_cu, :nom_d, :fono);

codigo
query1.close;
query1.params.Value[0] := StrToInt(edit1.text):// ñps que son integer
query1.params.Value[1]:= edit2.text; los que son textos
query1.Open o query1.ExecSQL;
bueno ocupo una base de datos acces...

el numero de serie es mi clace y lo tengo como id replica.. como tipo de dato.. y ni se qye mas decir..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:`pr qu eno puedo realizar un INSERT

Publicado por Dr Juzam (821 intervenciones) el 11/12/2004 13:31:40
Supongo que no pones todos los parámetros aquí pero sí en tu programa ¿no? Y otra pregunta ¿Por qué no usas ADOQuerys en lugar de TQuerys?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:`pr qu eno puedo realizar un INSERT

Publicado por risos (7 intervenciones) el 11/12/2004 14:30:29
bueno mandare todo l que esta en la query es haci
INSERT INTO Cheque(numero_serie,nombre_banco,cuenta_corriente,monto_cheque,fecha_cobro,rut_dueño,nombres_dueño,apellidos_dueño,fono_dueño,descripción,estado)VALUES :num, :cuenta, :nombanco, :monto, :fecha, :rut, :nom, :ape, :fono, :des, :estado);
luego en el boton que tengo para realizar la insercion esta lo siguiente
query1.Close;
query1.params[0].Value :=StrToInt(edit1.text);//numero de serie
query1.params[1].Value :=StrToInt(edit2.text);/cuenta corriente
query1.params[2].Value :=edit4.text;// nombre del banco
query1.params[3].Value :=StrToInt(edit3.text);// monto del cheque
query1.params[4].Value :=edit5.text; //fecha cobro
query1.params[5].Value :=StrToInt(edit6.text); // rut dueño
query1.params[6].Value :=edit7.text;// nombres dueño
query1.params[7].Value :=edit8.text;// apellidos dueños
query1.params[8].Value :=StrToInt(edit9.text); // fono
query1.params[9].Value :=edit10.text; // estado del cheque
query1.params[10].Value :=edit11.text;// glosa
query1.Open;
bueno fecha en base de datos fecha y hora (11-12-2004)standar, enteros largo, y textos la clave es numerica comoid de replica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:`pr qu eno puedo realizar un INSERT

Publicado por Dr Juzam (821 intervenciones) el 11/12/2004 16:36:06
Los parámetros deben estar en orden con los Values, me explico. Tu declaración de los campos que vas a insertar es:

(numero_serie,nombre_banco,cuenta_corriente,monto_cheque,fecha_cobro,rut_dueño,nombres_dueño,apellidos_dueño,fono_dueño,descripción,estado)

Y luego los values son

:num, :cuenta, :nombanco, :monto, :fecha, :rut, :nom, :ape, :fono, :des, :estado);

Num coincide con Número de Cuenta, pero Nombre del banco no coincide con Cuenta, que es el valor que señalas segundo. Tienes que hacerlo en el orden que expreses, si no el Query no sabrá como ordenar los valores en el campo apropiado.

A ver si esto soluciona el problema.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:`pr qu eno puedo realizar un INSERT

Publicado por Dr Juzam (821 intervenciones) el 11/12/2004 18:11:21
¿Has hecho lo que te dije? Debes poner los parámetros por este orden

:num, :nombanco, :cuenta, :monto, :fecha, :rut, :nom, :ape, :fono, :des, :estado

Así lo has declarado en el Insert. Luego debes usar ExecSQL dando valor a todos los parámetros que hayas identificado en la instrucción SQL del Query.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: lo que paso es...

Publicado por risos (7 intervenciones) el 11/12/2004 16:55:49
mira lo que paso es que inserte datos al abrir la base de datos pero se cae estoy probando con dos datos solamente pero se cae el programa marcando el siguiente error process not valid integer value ...
eso sucede cuando no inserto ningun dato en los campos, primero manda mis mensajes de abiso de insertar los campos pero cuando pasa los dos mensajes de los dos campos se cae mostrando ese error como puedo hacer para que solo muestr los mensajes y no se caiga ???

: ) ha y mucha gracias por estar ayudandome...



Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: lo arregle juzam

Publicado por risos (7 intervenciones) el 11/12/2004 18:30:08
si arregle eso por eso me inserta los datos en la tabla pero cuando no inserto ningun dato y acepto(apreto el boton) se cae ya que me dice que el valor insertado no es integer pero lo que poasa es que no he colocado ningun valor, lo que quiero es que aprete salgan los mensajes de que ingrese los datos, pero si no he colocado ningun dato que no se caiga.. que no pase nada

que agoo.. sorry todas las molestisa no es mi intencion molestar pero quiero aprender ya que os manuales son bastantes pobres con las bases de datos..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: lo arregle juzam

Publicado por Dr Juzam (821 intervenciones) el 11/12/2004 21:09:00
Pues lo que debes hacer es chequear el estado de los edits antes de insertar. Pones algo así:

if Edit1.Text='' then begin //Si el edit no contiene nada
ShowMessage ('No se puede insertar, no se han definido todos los parámetros requeridos');

Otra manera es poner el código de la inserción dentro de un bloque try..except, algo así:

try begin
Query1.Parameters[0].Value:=Edit1.Text;
{resto del código para insertar}
end;
except
Application.MessageBox ('Se ha producido un error al insertar. Compruebe que ha definido todos los parámetros', 'Error al insertar', MB_OK+MB_ICONERROR);
end;

Si usas la segunda opción mientras estás en Delphi verás el error (ya que primero lo capta Delphi). Sigue ejecutando el programa y verás tu mensaje de error. O pruebalo fuera de Delphi.

Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar