Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Problemas con ADO al Conectar SQL Server (https://www.clubdelphi.com/foros/showthread.php?t=24478)

Guillermo Gómez 23-08-2005 00:17:08

Problemas con ADO al Conectar SQL Server
 
Buenas tardes Foro, espero me puedan ayudar a buscar una solución al problema que les presento:

tengo un form con un Adoconnection y su respectivo connectionstring, que esta indicando la base de datos que tengo en mi servidor. La conección no tiene problemas, pero realizo el siguiente manejo:

tengo una grilla y la tengo conectada a una Ado Query, cuando quiero activar esta Sql me aparece el siguiente mensaje:

" El valor de BOF o EOF es True, o el actual registro se elimino; la operación solicitada requiere un registro actual"

lo mas raro es que aún no he hecho nada, y esta es la rutina que me lo da.

MySql := 'select cod_tipo, nom_tipo '+
'from tipo_doc order by cod_tipo';

QTipoDoc.Close; -------------> Aqui se cae
QTipoDoc.sql.clear;
QTipoDoc.SQL.Add(MySql);
QTipoDoc.Open;
QTipoDoc.First;

como pueden darse cuenta no alcanzo a realizar nada.

Esto lo hago para no tomar la base en forma directa y tener en la grilla un query de la tabla.

Espero me puedan ayudar......

LucianoRey 23-08-2005 00:44:06

Ado
 
Mira no se si te sirva, pero yo para conectarme a una grilla como le llamas, uso un datasource, es decir el query lo conecto a un datasource y este es el que llamo en el grid, saludos.

ContraVeneno 23-08-2005 00:56:12

Código Delphi [-]
with QTipoDoc do begin
 if Active then Close;
 SQL.clear;
 SQL.Add('select cod_tipo, nom_tipo ');
 SQL.Add('from tipo_doc order by cod_tipo');
 Open;
 First;
end; //with

Guillermo Gómez 23-08-2005 16:46:28

inclui la rutina pero me sigue dando el mismo error cuando trato de hacer Close. la verdad es que no se que pasa, ya que, es una instrucción rutinaria, a menos que sea algo de conección y que no estoy considerando.

ContraVeneno 23-08-2005 16:51:15

Bastante raro. Pues solo queda probar la recomendación de LucianoRey.

Prueba usando un Dataset ->Query ->DBGrid y nos cuentas como te fue.

Guillermo Gómez 23-08-2005 16:59:16

Lo que pasa es que posterior a esto, es decir, al ADD al SQL de mi Query se lo asigno a un dataset, por lo que no puedo hacer nada.....

Guillermo Gómez 23-08-2005 17:11:35

me di cuenta de una caracteristica:

1.- hago el mismo proceso para otra tabla, pero, esa tabla ya tiene datos y no se cae.

2.- la tabla en cuestión no tiene datos y al ingresarle un dato por el administrador corporativo, y volver a entrar al programa no presenta problemas.

por lo que deduzco que sólo me da con las tablas en blanco.....igual sigue siendo un gran problema......

lucasarts_18 23-08-2005 17:15:45

Cita:

Empezado por Guillermo Gómez
Lo que pasa es que posterior a esto, es decir, al ADD al SQL de mi Query se lo asigno a un dataset, por lo que no puedo hacer nada.....

Hola:

Realmente en tú código no veo que estás haciendo esto....:confused: y además creo que tienes errado algunos conceptos, un Tquery es un dataset, entonces a que dataset se lo estás asignando, a una grilla ?, sí es así, esto es un concepto que tienes mal empleado..Los TQuery,Ttable, son dataset, que en definitiva signfica un conjunto de datos.

Saludos.

Guillermo Gómez 23-08-2005 17:24:07

MySql := 'select cod_tipo, nom_tipo '+
'from tipo_doc order by cod_tipo';
with DtmTablas do begin
with QTipoDoc do begin
if Active then Close; ---> aqui se cae si no tiene datos y no
SQL.clear; se cae si tiene por lo menos 1 reg.
SQL.Add(MySql); ----> asigno consulta a mi query
Open; y lo activo
First;
if Eof then begin
btnEditar.Enabled := False;
BtnBorrar.Enabled := False; --> Activo o desactivo botones
btnImprimir.Enabled := False; para la pantalla
btnExportar.Enabled := False;
end
else begin
btnEditar.Enabled := True;
BtnBorrar.Enabled := True;
btnImprimir.Enabled := True;
btnExportar.Enabled := True;
end;
end;
DataSource1.DataSet := QTipoDoc; --> asigno el resultado a la
end; grid para poder visualizarlo

lucasarts_18 23-08-2005 17:50:42

Hola:

Al parecer se confunde porque referencias un Table y Query con With y esto podría dar un problema, por ahora quita el With y referencialos por completo.
El active al parecer es un metodo del Query y del table, y además el table no le veo el uso en tú código.
El dataset del datasource asignalo en tiempo de diseño como dijo LucianoRey y no por cógigo.

Verifica bien el uso de la tabla y del query, creo que por ahí vienen los problemas.

Saludos.

mamcx 23-08-2005 17:59:20

Version de Delphi, version de ADO, version de Sql Server y codigo completo.

Este es un error "viejisimo" y esta documentado. Por donde va el agua depende de los datos anteriores...

lucasarts_18 23-08-2005 18:16:03

Cita:

Empezado por mamcx
Version de Delphi, version de ADO, version de Sql Server y codigo completo.

Sabes si se pueden actualizar los componentes ADO, estuve buscando pero no encontré nada..

Saludos.

Guillermo Gómez 23-08-2005 19:04:02

ustedes creen que se debe a que el componente ADO que tengo está con problemas.....? trabajo con DELPHI 5

mamcx 23-08-2005 19:26:46

Si se puede actualizar. De hecho el problema parece ser especifico de la version 5:

http://info.borland.com/devsupport/delphi/mdac26.html

lucasarts_18 23-08-2005 20:44:12

Hola:

Muchisimas gracias.

:D

Guillermo Gómez 23-08-2005 23:03:34

muchas gracias...... al foro y a los compañeros que escribieron..... lo que faltaba era una actualización del componente ADO, baje esos Update y actualice mi Delphi para despues correr el programa y no tuve ningun problema. Las direcciones de donde baje los Update son:

http://info.borland.com/devsupport/delphi/mdac26.html

http://info.borland.com/devsupport/d...501readme.html
Espero poder ayudar en cualquier otro foro o consulta.....


La franja horaria es GMT +2. Ahora son las 21:04:08.

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