![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Eliminar Registro Con ADODataSet
Hola Gente, espero me puedan ayudar. estuve buscando en el foro y encontre temas relacionados pero no la solucion a mi problema...
el Problema que tengo es el siguiente: Estoy usando ADO para conectarme a una base de datos SQL con Delphi; Utilizo un ADOConection Para Establecer la conexion con la base de datos, y diferentes ADODataSets para mostrar los datos de las diferentes tablas y para realizar las consultas. el problema es cuando intento eliminar un registro... Hago lo siguiente: 1- Consulta: String; 2- Consulta := 'Delete From ' + Tabla + ' Where ' + Campo + ' = ' + Dato; 3- ADODataSet.Active := False; 4- ADODataSet.CommandText := SQL; 5- ADODataSet.Active := True; 1- Declaro Una Variable Auxiliar De Tipo String Para Asignarle la Consulta 2- Le Asigno la Consulta a la Variable Auxiliar 3- Desconecto el DataSet Para Poder Realizar La Consulta 4- Ingreso la Consulta Al DataSet 5- Vuelvo a Conectar el DataSet Para Realizar La Consulta y Reflejar Los Resultados Teoricamente No hay errores, ya que luego de ultima instruccion el registro queda eliminado, el programa sigue andando y los resultados reflejados en el DBGrid son correctos, Pero me sale un cartel (Cada vez que elimino un registro) que dice lo siguiente: 'ADODataSet: CommandText Does Not Return A Result Set' Analizando un poco lo que dice, suena logico, ya que la consulta realizada no devuelve ningun dato (o conjunto de datos), pero en fin, como le hago sino para eliminar un registro sin que aparezca ese molesto cartel cada vez que se realiza la operacion??? |
#2
|
||||
|
||||
en lugar del active usa execsql
para cuando abras el query
__________________
Dulce Regalo que Satanas manda para mi..... |
#3
|
||||
|
||||
Hola.
No soy experto en ADO pero el componente TADoDataSet tiene el método Delete que cumple el cometido que estás buscando mediante la sentencia SQL. Y no necesita ser cerrado y abierto para ejecutarlo Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#4
|
||||
|
||||
Hola de nuevo.
El equivalente a lo que buscas hacer sería: En este caso sí es necesario cerrarlo y abrirlo pero por la búsqueda, el método Delete en sí no lo requiere, solo elimina el dato previamente seleccionado. Un saludo.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#5
|
|||
|
|||
Gracias
Muchisimas gracias!!!!! lo voy a probar mañana y les comento. Disculpen la demora, no sabia que me ivan a contestar tan rapido, gracias...
|
#7
|
|||
|
|||
Problemas con el 'As' al Eliminar Registro Con ADO
Genteee, muchisimas gracias a todos, me anduvo de lujo el codigo que me pasaron. Espero no molestarlos, pero ahora me surgio otro problema, quizas me puedan ayudar. Cuando levanto los datos de las tablas SQL (Con el ADODataSet), lo hago mediante una consulta SQL, pero uso el 'As' Para que los titulos de los campos se muestren diferente
Ejemplo: Select ID As Codigo, RacSoc As [Razon Social].....Etc). Loa Datos Se muestran bien, las consultas se realizan bien, pero a la hora de eliminar un registro Con las siguientes instrucciones (Gracias ecfisa): Me dice que no encuentra el Campo 'Codigo'. Nota: En El DataSet tengo los campos agregados como persistentes (Add All Fields) y estos campos se agregan pero con el alias (Codigo, Razon Social, etc.). El problema queda resuelto cuando saco 'TODOS' los As de la consulta SQL, pero los titulos de las columnas en el DBGid quedan feos (ID, RacSoc, Etc.). Espero que me hayan entendido, y espero no molestarlos, desde ya muchas gracias, por ayuda... Última edición por ecfisa fecha: 10-09-2011 a las 04:19:43. Razón: Etiquetas [delphi] [/delphi] |
#8
|
||||
|
||||
Cita:
Si tenés los agregados los campos persistentes hacé lo siguiente: Abrí el Fields Editor y en la propiedad DisplayLabel de cada uno de los campos, ingresá el texto que deseas que se muestre. De no tenerlos agregados (o sí), también podés indicarle (en el evento OnShow del form por ejemplo) el texto a mostrar de este modo:
Saludos. ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 10-09-2011 a las 04:20:25. |
#9
|
|||
|
|||
Gracias!!!
Perfecto!!!!! Gracias ecfisa. Todo anduvo perfecto, muchisimas gracias por tu ayuda y tu tiempo...
|
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Eliminar Registro | agustin173 | Varios | 27 | 09-12-2010 16:18:02 |
Eliminar Registro | agustin173 | Varios | 9 | 13-10-2010 06:32:41 |
eliminar un registro | pronto7 | SQL | 1 | 21-06-2010 20:33:21 |
Eliminar registro | Zakio14 | Firebird e Interbase | 5 | 20-03-2008 07:07:07 |
Eliminar registro de un .mdb con ADO | ¥0n1 | Conexión con bases de datos | 2 | 07-11-2007 11:29:12 |
![]() |
|