Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Error creating cursor handle (https://www.clubdelphi.com/foros/showthread.php?t=9027)

miguel_fr 11-04-2004 01:32:59

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

Julià T. 11-04-2004 01:50:32

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;

miguel_fr 11-04-2004 13:51:48

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 :D

rodocucea 19-12-2006 19:25:38

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. ??:confused: :confused:

Lepe 20-12-2006 13:12:23

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

rodocucea 02-01-2007 01:59:25

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:confused: :confused:

Lepe 02-01-2007 12:47:09

Mostrar un combo en Stringgrid

Para añadir los registros al combo, tienes que hacerlo a mano, recorrer el query e ir añadiendolos a los Items del ComboBox, o usar un TDBLookUpCombo que ya lo hace.

Saludos


La franja horaria es GMT +2. Ahora son las 18:51:57.

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