Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-07-2007
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Talking Como hacer un Select, Insert, Update, Delete en SQL Server

Hola foreros...

Por disposiciones de mi empresa, lo que antes trabajaba con Interbase, tengo que hacerlo con SQLServer 2000.

Con respecto a lo anterior, he buscado en el foro, pero no he encontrado (o no supe buscar bien ), las sentencias para realizar dichos procedimientos...

por lo cual pondre las sentencias que utilizaba yo en Interbase 6, y si pueden indicarme como hacer lo mismo pero con SQLServer...

Las conexiones las estoy realizando co ADO, utilizando un TADOConnection y TADOQuery...

Otra consulta.. con Interbase utilizaba las Transaction... hay algun componente ADO que las reemplace ... y es necesario ???

Proceso para Seleccionar
Código Delphi [-]
IBQ_Edit.Close;
IBQ_Edit.SQL.Clear;
IBQ_Edit.SQL.Add('Select * From "Proveedor" Order By "Pro_Rut"');
IBQ_Edit.Open;

Proceso para Insertar
Código Delphi [-]
IBQ_Edit.SQL.Clear;
IBQ_Edit.SQL.Add('Insert Into "Proveedor" ("Pro_Rut","Pro_Razon","Pro_Direccion","Pro_Poblacion","Pro_Comuna","Pro_Fono","Pro_Fax")');
IBQ_Edit.SQL.Add('Values (:P1, :P2, :P3, :P4, :P5, :P6, :P7)');
IBQ_Edit.Params[0].AsString := vRut.Text;
IBQ_Edit.Params[1].AsString := vRaz.Text;
IBQ_Edit.Params[2].AsString := vDir.Text;
IBQ_Edit.Params[3].AsString := vPob.Text;
IBQ_Edit.Params[4].AsString := vCom.Text;
IBQ_Edit.Params[5].AsString := vTel.Text;
IBQ_Edit.Params[6].AsString := vFax.Text;
IBQ_Edit.ExecSQL;
IBT_Edit.Commit;

Proceso para Actualizar
Código Delphi [-]
IBQ_Edit.SQL.Clear;
IBQ_Edit.SQL.Add('Update "Proveedor" Set "Pro_Razon"=:Var1, "Pro_Direccion"=:Var2, "Pro_Poblacion"=:Var3, "Pro_Comuna"=:Var4, "Pro_Fono"=:Var5, "Pro_Fax"=:Var6');
IBQ_Edit.SQL.Add('Where "Pro_Rut"=:Var7');
IBQ_Edit.Params[0].AsString := sRaz.Text;
IBQ_Edit.Params[1].AsString := sDir.Text;
IBQ_Edit.Params[2].AsString := sPob.Text;
IBQ_Edit.Params[3].AsString := sCom.Text;
IBQ_Edit.Params[4].AsString := sTel.Text;
IBQ_Edit.Params[5].AsString := sFax.Text;
IBQ_Edit.Params[6].AsString := sRut.Text;
IBQ_Edit.ExecSQL;
IBT_Edit.Commit;

Proceso para eliminar
Código Delphi [-]
IBQ_Edit.SQL.Clear;
IBQ_Edit.SQL.Add('Delete From "Proveedor" Where "Pro_Rut"=:Var1');
IBQ_Edit.Params[0].AsString := Rut.Text;
IBQ_Edit.ExecSQL;
IBT_Edit.Commit;

Bueno amigos... espero me puedan ayudar... y orientarme como realizar estos procesos o en donde buscar... gracias...
__________________
BlueSteel

Última edición por BlueSteel fecha: 18-07-2007 a las 22:24:51.
Responder Con Cita
  #2  
Antiguo 18-07-2007
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Con Sql Server se usan comunmente los componentes de Ado... y funcionan de forma similar...

Busca los TADO.... en la paleta..
__________________
El malabarista.
Responder Con Cita
  #3  
Antiguo 18-07-2007
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Estoy usando esto para inserta un registro...
Código Delphi [-]
AQ_Select.Close;
AQ_Select.SQL.Clear;
AQ_Select.SQL.Add('Insert Into Socio(Soc_Rut, Soc_Nombres, Soc_Apellidos) Values (:vRut.Text, :vNom.Text, :vApe.Text)');
AQ_Select.ExecSQL;

Pero me da el sgte error..

No se puede insertar el valor NULL en la columna 'Soc_Apellidos', tabla 'GYM.dbo.Socio'. La columna no admite valores NULL. Insert falla..

Ahora, se lo que significa esto.(que no puedo ingresar un dato como nulo.. cuando esta marcado como no nulo).... pero el dato del Soc_Apellidos lo ingreso....( e incluso tiene mas campos la tabla.. pero solo deje not null a esos 3 para probar si funciona el ingreso)

que puede ser...??? error de sintaxis.. o algo por el estilo...

Además, como defino si un dato es numerico o con decimales o de tipo fecha???
__________________
BlueSteel
Responder Con Cita
  #4  
Antiguo 18-07-2007
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Pues sin ver mas codigo, Soc_Apellidos esta nulo.

Para saber los tipos de datos es igual... usa la propiedad FieldDefs para obtener la estructura de los campos
__________________
El malabarista.
Responder Con Cita
  #5  
Antiguo 19-07-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por BlueSteel
Código Delphi [-]
AQ_Select.Close;
AQ_Select.SQL.Clear;
AQ_Select.SQL.Add('Insert Into Socio(Soc_Rut, Soc_Nombres, Soc_Apellidos) Values (:vRut.Text, :vNom.Text, :vApe.Text)');
AQ_Select.ExecSQL;
¿Y dónde asignas valores a los parámetros?

// Saludos
Responder Con Cita
  #6  
Antiguo 19-07-2007
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Shuata... yo pensaba que con
Código:
Values (:vRut.Text, :vNom.Text, :vApe.Text)');
estaba solucionado... por que esos son los datos .. si no es así.. como debe ser ???
__________________
BlueSteel
Responder Con Cita
  #7  
Antiguo 19-07-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Supongo que a lo que se refiere Roman es a de donde se sacan esos parametros, para mi no tiene parametros, tiene edits, por lo cual seria asi:
Código Delphi [-]
AQ_Select.Close;
AQ_Select.SQL.Clear;
AQ_Select.SQL.Add('Insert Into Socio(Soc_Rut, Soc_Nombres, Soc_Apellidos) Values (vRut.Text, vNom.Text, vApe.Text)');
AQ_Select.ExecSQL;
En caso de tener parametros no seria .text.
Saludos
Responder Con Cita
  #8  
Antiguo 19-07-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Me imagino entonces, que vRut, vNom y vApe son Edits que tienes en tu aplicación. Pero SQL no entiende nada de Edits. En tu primer mensaje de este hilo pones una inserción donde sí sustituyes parámetros, por ello no entiendo que aquí los omitas.

// Saludos
Responder Con Cita
  #9  
Antiguo 19-07-2007
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Roman... tienes toda la razon.. lo que pasa es que con ADO.. .no se como hacerlo?

pero igual toy tratando de ver como se hace...
__________________
BlueSteel
Responder Con Cita
  #10  
Antiguo 19-07-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¡Ah! Creo ver por donde va el problema. Es que ADO usa una nomenclatura un poco distinta para acceder a los parámetros. Lo similar a lo que tienes con los componentes IB sería así:

Código Delphi [-]
ADOQuery1.Parameters[0].Value := vRut.Text;

// Saludos
Responder Con Cita
  #11  
Antiguo 19-07-2007
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Ya me funco...

Gracias a todos... ahora si me funco...

Código Delphi [-]
AQ_Edit.Close;
AQ_Edit.SQL.Clear;
AQ_Edit.SQL.Add('Insert Into Socio(Soc_Rut, Soc_Nombres, Soc_Apellidos) Values (:vRu, :vNom, :vApe)');
AQ_Edit.Parameters[0].Value :=vRut.Text;
AQ_Edit.Parameters[1].Value :=vNom.Text;
AQ_Edit.Parameters[2].Value :=vApe.Text;
AQ_Edit.ExecSQL;

Ahora, solo por preguntar.. existe una forma más fácil... digo ,. .utilizando un QuoteStr.. o algo por el estilo ???
__________________
BlueSteel
Responder Con Cita
  #12  
Antiguo 19-07-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
En cuanto a las transacciones, se encuentran en el ADOConnection; Es decir, que ahí tienes los métodos Start..., Commit, RollBack.. y demás.
Debes llamarlas expresamente cuando las necesites y van por conexión.

Lo del QuoteStr, puedes utilizarlo si añades tú los valores de los campos manualmente, pero creo que con pará,metros tendrás menos problemas, ya que no debes preocuparte de si el parámetro en numérico, fecha, string,...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Hacer un insert o un update en un campo array David Firebird e Interbase 4 27-04-2007 20:14:13
Insert, Update, Delete+MySQL+Zeos+Master/Detail BlackDaemon MySQL 4 03-04-2007 13:04:07
Por que el DBLookupoComboBox no se mueve con insert y delete David Conexión con bases de datos 1 19-07-2006 18:05:34
Trigger Before (Insert,update,delete)? estebanx MS SQL Server 2 25-05-2006 16:58:19
Como crear una sentencia SQL (Insert, update y delete) sitrico Conexión con bases de datos 1 14-10-2004 01:02:42


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


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