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 24-06-2008
Rockin Rockin is offline
Miembro
 
Registrado: may 2003
Ubicación: Málaga
Posts: 264
Poder: 21
Rockin Va por buen camino
ADO + SQL Server + CLientDataSet

Hola amigos:

Estoy empezando a un proyecto nuevo para la empresa, y el cliente lo solicita SQL Server. Tengo experiencia en Firebird pero nunca he hecho nada en SQL Server, y me da un error al insertar un registro por medio de un ClientDataSet de la siguiente manera:

Código Delphi [-]
 
CDSUsuarios.Close;
CDSUsuarios.CommandText:= 'insert into usuarios (nombre,fecha,hora) values (:nombre,:fecha,:hora)';
CDSUsuarios.Open;
CDSUsuarios.Insert;
CDSUsuarios.FieldByName('nombre').AsString:= txtNombre.Text;
CDSUsuarios.FieldByName('fecha').AsDatetime:= strtodate(txtfecha.Text);
CDSUsuarios.FieldByName('hora').AsDateTime:= strtotime(txthora.Text);
CDSUSuarios.Post;
CDSUsuarios.ApplyUpdates(0);

El error que me da es el siguiente :'Argumentos incorrectos, fuera del intervalo permitido o en conflicto con otros.'

Las consultas me las ejecuta perfectamente.
¿Que estoy haciendo mal?

Saludos y gracias de antemanos
Responder Con Cita
  #2  
Antiguo 24-06-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola Rockin, no necesitas un ClientDataSet para trabajar con ADO, has directamente la inserción de tu registro sobre tu ADOTable.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #3  
Antiguo 24-06-2008
Rockin Rockin is offline
Miembro
 
Registrado: may 2003
Ubicación: Málaga
Posts: 264
Poder: 21
Rockin Va por buen camino
Me hace falta porque tengo un servidor de capa intermedia implementado, y tengo que acceder a el por el ClientDataSet.
Responder Con Cita
  #4  
Antiguo 24-06-2008
[basti] basti is offline
Miembro Premium
 
Registrado: ago 2004
Posts: 388
Poder: 20
basti Va por buen camino
No entiendo el código. Por un lado pones un Insert dentro del CommandText y por otro añades el registro con un Append. Supongo que tendrías que hacer una cosa u otra.
__________________
Saludos.
Responder Con Cita
  #5  
Antiguo 24-06-2008
Rockin Rockin is offline
Miembro
 
Registrado: may 2003
Ubicación: Málaga
Posts: 264
Poder: 21
Rockin Va por buen camino
En firebird hay que ponerlo así, por eso lo estoy haciendo igual pero hay algo que falla. El error me da cuando llego a la linea
Código Delphi [-]
CDSUsuarios.Open;

Pero si quito esto me sale que no se puede realizar la operecion en un dataset cerrado.

Seguire intentandolo.
Responder Con Cita
  #6  
Antiguo 24-06-2008
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
Lo que pasa es que intenta hacer la insercion pero como no le has dado valor a los parametros por eso te marca el error intenta con:

CDSUsuarios.CommandText:= 'Select nombre,fecha,hora from usuarios where 1=2';

el 1=2 es para que no regrese ningun registro, y luego ya haces la insercion como lo estas haciendo...
Responder Con Cita
  #7  
Antiguo 24-06-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola de nuevo Rockin, debes poner el Open antes que el commandText, para que te acepte lo que tienes dentro del CommandText y los parametros que le pasas luego.

Código Delphi [-]
CDSUsuarios.Close;
CDSUsuarios.Open;
CDSUsuarios.CommandText:= 'insert into usuarios (nombre,fecha,hora) values (:nombre,:fecha,:hora)';
CDSUsuarios.Insert;
CDSUsuarios.FieldByName('nombre').AsString:= txtNombre.Text;
CDSUsuarios.FieldByName('fecha').AsDatetime:= strtodate(txtfecha.Text);
...........

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #8  
Antiguo 24-06-2008
Rockin Rockin is offline
Miembro
 
Registrado: may 2003
Ubicación: Málaga
Posts: 264
Poder: 21
Rockin Va por buen camino
He probado asi, y hora me da el siguiente error de DataSetUsuarios: missing CommandText property.

Seguire investigando.
Saludos.
Responder Con Cita
  #9  
Antiguo 24-06-2008
Rockin Rockin is offline
Miembro
 
Registrado: may 2003
Ubicación: Málaga
Posts: 264
Poder: 21
Rockin Va por buen camino
Lo tengo solucionado por si a alguien le sirve de ayuda:

Código Delphi [-]
  
CDSUsuarios.Close;
CDSUsuarios.CommandText:= 'select nombre,fecha,hora from usuarios';
CDSUsuarios.Open;
CDSUsuarios.Insert;
CDSUsuarios.FieldByName('nombre').AsString:= txtNombre.Text;
CDSUsuarios.FieldByName('fecha').AsDatetime:= strtodate(txtfecha.Text);
CDSUsuarios.FieldByName('hora').AsDateTime:= strtotime(txthora.Text);
CDSUSuarios.Post;
CDSUsuarios.ApplyUpdates(0);

Habia que cambiar esa consulat tal como dijo basti, gracias a todos.
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
Problemas conectividad instalando sql server 2000 en w2k server ospaco69 MS SQL Server 1 16-02-2007 04:39:17
Existe el postgres SQL Server y Client como el SQL Server??? alastor Conexión con bases de datos 5 28-09-2006 21:46:13
Windows Media Server e Internet Information Server Ñuño Martínez Windows 0 08-09-2006 11:26:53
Exportar database sql server 2005 a sql server 2000 ErenioDhG Conexión con bases de datos 1 29-08-2006 15:42:46
Problemas con Terminal Server Win 2003 Server El_Perrito Windows 0 16-10-2004 19:53:45


La franja horaria es GMT +2. Ahora son las 18:27:13.


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