Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-04-2004
Avatar de miguel_fr
miguel_fr miguel_fr is offline
Miembro
 
Registrado: mar 2004
Ubicación: Santiago del estero, Capital
Posts: 73
Poder: 21
miguel_fr Va por buen camino
Question Error creating cursor handle

Ese mensaje me da el compilador en el siguiente codigo
Código:
 query1.Close;
  query1.SQL.Clear;
  query1.SQL.Add('Select * FROM tabla1 WHERE nombre = ' + QuotedStr(texto));
  query1.Open;
 if Query1.IsEmpty then
  begin
   query1.Close;
   query1.SQL.Clear;
   query1.SQL.Add('Insert INTO tabla1 (nombre) Values (' + QuotedStr(texto)+')');
   query1.Open;
  end;
yo primero verifico que mi variable no este almacenada en la BD, hasta hay todo bien, al querer insertar dicho dato en la BD en el "Query1.open " me da el error
Estoy poniendo mal el INSERT ?
o estoy intentando de una manera erronea ingresar los datos?
muchas gracias desde ya
Responder Con Cita
  #2  
Antiguo 11-04-2004
Julià T. Julià T. is offline
Miembro
 
Registrado: may 2003
Ubicación: en el teclado
Posts: 314
Poder: 22
Julià T. Va por buen camino
el codigo es correcto, lo que pasa es que un insert no genera ningun cursor con resultado de datos por lo que lo correcto en este caso no es abrir una consulta sino ejecutar una sentencia SQL es decir:
Código:
 Query1.ExecSql; //en vez de Query1.Open;
Responder Con Cita
  #3  
Antiguo 11-04-2004
Avatar de miguel_fr
miguel_fr miguel_fr is offline
Miembro
 
Registrado: mar 2004
Ubicación: Santiago del estero, Capital
Posts: 73
Poder: 21
miguel_fr Va por buen camino
Thumbs up

Cita:
Empezado por Julià T.
el codigo es correcto, lo que pasa es que un insert no genera ningun cursor con resultado de datos por lo que lo correcto en este caso no es abrir una consulta sino ejecutar una sentencia SQL es decir:
Código:
 Query1.ExecSql; //en vez de Query1.Open;
guau muchas gracias no tenia niiiiii idea de todo lo que me acabas de decir muchisimas gracias, ya mismo comienzo a experimentar lo que me dijiste
Responder Con Cita
  #4  
Antiguo 19-12-2006
rodocucea rodocucea is offline
Registrado
 
Registrado: dic 2006
Posts: 2
Poder: 0
rodocucea Va por buen camino
Exclamation error creating cursor handle con update

hola a todos, este es el codigo

query1.Active:=false;
query2.Close;
Query2.SQL.Clear;
Query2.SQL.Add('UPDATE dbprovee SET Activo=false where codigo='+#39+dbedit1.text+#39);
showmessage(query2.SQL.Text); // para mostrar la consulta
try
begin
query2.open;
{Query2.ExecSQL;}
Query2.Active:=true;
end;
except
showmessage('no sirvio');
end;

El problema es que me marca el error creating cursor handle en el open o en ExecSQL; que puedo hacer para que me realice el update. ??
Responder Con Cita
  #5  
Antiguo 20-12-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Bienvenido a ClubDelphi rodocucea

¿Qué base de datos usas y qué componentes? (access con ADO?).

Por regla general debes usar esto:
Código Delphi [-]
query2.Close;
Query2.SQL.Clear;
Query2.SQL.Add('UPDATE dbprovee SET Activo=false where codigo='+QuotedStr(dbedit1.text);
Query2.ExecSQL;
if Query2.RowsAffected = 0 then
 ShowMessage('Funcionó pero no encontró registros para actualizar.')
else
  ShowMessage(inttostr(query2.RowsAffected)  + ' registros afectados.');
Query2.Open es idéntico a Query2.Active := true
Query2.Close es idéntico a Query2.Active := false;

Query2.ExecSql se usa para sentencias del tipo UPDATE, DELETE, CREATE,... mientras que
Query2.Open se usa para sentencias SELECT

No puedes incluir un .Open (o Active := true) con un ExecSql nunca.

Tu código es algo confuso, precisamente por las pruebas que has hecho, inténtalo así.

Saludos

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 02-01-2007
rodocucea rodocucea is offline
Registrado
 
Registrado: dic 2006
Posts: 2
Poder: 0
rodocucea Va por buen camino
como asignar un query a un combobox sin usar el dbcombobox

tengo una duda acerca de como asignar una consulta de un query a un simple y ordinario combobox, o si supieran como en un stringgrid usar una sola celda para un combobox de una base de datos.

gracias
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 07:59:47.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi