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 Buscar Temas de Hoy Marcar Foros Como Leídos

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: 22
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: 22
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: 22
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: 22
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: 22
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


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
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 02:58:05.


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