Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-06-2006
luxus luxus is offline
Miembro
 
Registrado: oct 2004
Posts: 134
Poder: 20
luxus Va por buen camino
Consultas con SQL

Hola a todos,

A ver si me podeis echar una mano porque me estoy volviendo loco con las consultas de SQL.

Resumiendo, el problema que tengo es que supongamos que quiero insertar un registro en una base de datos en access.
podria hacerlo mediante la propiedad "append" pero me han comentado que seria mas facil hacerlo mediante SQL.

Por lo tanto he insertado en el form un tadoquery y la propiedad "connection" está asociada a adoconnection1. la propiedad
"SQL" tiene el siguiente codigo:

Código SQL [-]
INSERT INTO TABLA1 (CODIGO,NOMBRE,APELLIDOS)
 VALUES (:'12', :'JUAN', :'SANCHEZ');

La propiedad de "active" esta a false.

Ahora os detallo el codigo fuente que he escrito para ver que me inserte en la tabla1 de la base de datos:

Código Delphi [-]
ADOConnection1.Open;
ADOQuery1.Active:=true;
ADOQuery1.Open;
ADOQuery1.Edit;

No sé si voy bien encaminado o no y/o me hace falta modificar el codigo. os agradeceria si me pudieseis ayudar ya que he visto en libros y no explican nada. si me pudieses mostrar el codigo para realizar una insercion en la tabla mejor asi podria tener una idea mas clara del proceso a seguir.

Gracias y un saludo a todos

Última edición por dec fecha: 22-06-2006 a las 15:25:38.
Responder Con Cita
  #2  
Antiguo 22-06-2006
momo momo is offline
Registrado
 
Registrado: jun 2006
Posts: 9
Poder: 0
momo Va por buen camino
Sugerencia

Buen dia
Si vas a utilizar SQL Server yo te sugeriría utilizar procedimientos almacenados.

1. Crea tu procedimiento en el servidor

CREATE PROCEDURE [OWNER].[PROCEDURE NAME](PARAMETROS) AS

En los parametros debes especificar si son de entrada o salida, el tipo
@nombre varchar --por default de entrada (input)

INSERT INTO Mitabla(nombre, apat, amat) values(@nombre,
@apat, @amat)

Coloca un TADOStoreprocedure asocia la conexion y el nombre del procedimiento de SQL Server

Para asignar los parametros puedes utilizar parameters.parameterbyname
asigna los valores

y ejecuta Execproc

No olvides las validaciones pertinentes

Saludos
Responder Con Cita
  #3  
Antiguo 22-06-2006
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
eso de "mas facil" es relativo segun a lo que estes haciendo, eso de enlazar los controles de delphi y usar los metodos insert, edit, post, etc, te facilita mucho la vida, mas que usar edits normales, procesarlos y luego hacer a mano la insercion en sql, mejor platicanos que estas haciendo y te podremos orientar
Responder Con Cita
  #4  
Antiguo 23-06-2006
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Si vas a utilizar un query, la instrucción para ejecutar un insert, o cualquier otra instrucción que no sea de consulta, se debe de realizar con ExeqSQL, sin open, sin active y sin edit.... simplemente utiliza ExecSQL y debería de funcionar.

Código Delphi [-]
with tuQuery do
 if active then close;
 sql.clear;
 sql.add('INSERT INTO TABLA1 (CODIGO,NOMBRE,APELLIDOS)');
 sql.add('VALUES ('12', 'JUAN', 'SANCHEZ')');
 ExecSQL;
end; //with
__________________


Última edición por ContraVeneno fecha: 23-06-2006 a las 00:59:52.
Responder Con Cita
  #5  
Antiguo 23-06-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Cita:
Empezado por ContraVeneno
Código Delphi [-]
with tuQuery do
 if active then close;
 sql.clear;
 sql.add('INSERT INTO TABLA1 (CODIGO,NOMBRE,APELLIDOS)');
 sql.add('VALUES ('12', 'JUAN', 'SANCHEZ')');
 ExecSQL;
end; //with
Yo creo que esto arrojará un fatality, pues no estas enviando como cadena a "Juan y Sanche", falta encerrarlos entre comillas.

Saludos
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #6  
Antiguo 23-06-2006
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Muy cierto, detalles que se le escapan a uno

Código Delphi [-]
with tuQuery do  
 if active then close;  
 sql.clear;  
 sql.add('INSERT INTO TABLA1 (CODIGO,NOMBRE,APELLIDOS)');  
 sql.add('VALUES (''12'', ''JUAN'', ''SANCHEZ'')');  
 ExecSQL; 
end; //with
__________________

Responder Con Cita
  #7  
Antiguo 26-06-2006
momo momo is offline
Registrado
 
Registrado: jun 2006
Posts: 9
Poder: 0
momo Va por buen camino
Transacciones y bloqueos

Buen dia

Con respecto a lo que me encuentro realizando es una aplicacion
cliente servidor, pero utilizo los edits normales porque es una verdadero
problema controlar los DB, además que utilizando los procedimientos
almacenados evito que viaje demasiado codigo SQL por la red. Además que voy
a implementar transacciones. Debido a que tengo las tan comunes
relaciones maestro detalle.

He estado leyendo algunos hilos de transacciones y he escuchado
historias tal alarmantes como que tiene que reinstalar todo el servidor de
sql debido a que se bloqueo y no lograron desbloquearlo, es algo que me
inquieta. Por ejemplo que pasa cuando un cliente se encuentra en medio
de una transaccion y por otras cuestiones ajenas al programa se traba
la maquina, como ese usuario bloqueo el registro no queda bloqueado a
menos que el los desbloquee?


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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Consultas SQL V.S. Consultas Clipper AGAG4 SQL 7 20-12-2005 15:59:31
Dos consultas en una Petolansa SQL 5 16-08-2005 07:39:48
Consultas silviodp Conexión con bases de datos 6 05-08-2004 23:44:24
Consultas agilaberte SQL 1 04-04-2004 13:42:54
Consultas NickName Firebird e Interbase 1 27-11-2003 05:37:27


La franja horaria es GMT +2. Ahora son las 12:12:39.


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