Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
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 04-11-2005
Ivan_25 Ivan_25 is offline
Miembro
 
Registrado: oct 2005
Posts: 87
Poder: 21
Ivan_25 Va por buen camino
No me funciona

He probado este codigo para insertar el Id, pero me dice que crearia campos duplicados y me da error, aunque sin embargo lo inserta en la base de datos:

String cadena;
FPrincipal->ADOQListacandidatos->SQL->Clear(
FPrincipal->ADOQListacandidatos->SQL->Add("INSERT INTO candidatos (Id) VALUES(\""+ECodigo->Text.Trim()+ "\")");
cadena = FPrincipal->ADOQListacandidatos->SQL->Text.Trim();
Edit1->Text = cadena;
FPrincipal->ADOQListacandidatos->ExecSQL();
FPrincipal->ADOQListacandidatos->Active = true;
FPrincipal->DBGCandidatos->DataSource = FPrincipal->DSListacandidatos;

¿Se os ocurre algo?
Responder Con Cita
  #2  
Antiguo 04-11-2005
Avatar de alt126
alt126 alt126 is offline
Miembro
 
Registrado: dic 2004
Posts: 171
Poder: 22
alt126 Va por buen camino
puess....

personalmente creo que es por el "ECodigo->Text"...., lo del ; esta bien. Esto es porque para pasar parametros a una consulta, no se puede meter en la cadena de la consulta un componente...solo se puede poner SQL!!!

para meter un parametro es asi:

Cita:
Datos->Consulta->SQL->Clear();
Datos->Consulta->SQL->Add("SELECT Campo1 FROM Tabla WHERE Campo2=:a;");
Datos->Consulta->Params->Items[0]->AsString = "lo que quieras";
...
Prueba eso a ver que tal. Porque el componente Edit ese que metes, yo creo que lo toma como una cadena de texto y no como un componente...de todas maneras te vuelvo a comentar, que las consultas, las pruebes antes en la BD, y cuando veas que es correcto lo que hace, la metas en codigo...te ahorraras muchos dolores de cabeza.

Un saludo

Antonio
Responder Con Cita
  #3  
Antiguo 04-11-2005
Ivan_25 Ivan_25 is offline
Miembro
 
Registrado: oct 2005
Posts: 87
Poder: 21
Ivan_25 Va por buen camino
Localizado el problema

El problema esta en el active:

FPrincipal->ADOQListacandidatos->Active = true;

Si lo quito lo inserta bien y no da fallo, pero el problema es que entonces al volver a mostrar el formulario principal no me muestra los registros, y si pongo el active me da fallo. ¿Como puedo solucionarlo?. Gracias por todo.
Responder Con Cita
  #4  
Antiguo 04-11-2005
Ivan_25 Ivan_25 is offline
Miembro
 
Registrado: oct 2005
Posts: 87
Poder: 21
Ivan_25 Va por buen camino
Lo he solucionado asi

ADOQInsertar->SQL->Clear();
ADOQInsertar->SQL->Add("INSERT INTO candidatos(Id) VALUES(\""+ECodigo->Text.Trim()+"\")");
FPrincipal->DSListacandidatos->DataSet = ADOQInsertar;
ADOQInsertar->ExecSQL();
//ADOQInsertar->Active = true; //Esta queda inactiva
FPrincipal->DSListacandidatos->DataSet = ADOQInsertar;
FPrincipal->ADOQListacandidatos->Active = true;
FPrincipal->DSListacandidatos->DataSet = FPrincipal->ADOQListacandidatos;
FPrincipal->ADOQListacandidatos->Close();

Y cuando cierro el formulario hago:

FPrincipal->ADOQListacandidatos->Open();

El problema que tengo ahora es que no se como hacer para insertar dos campos a la vez, es decir:

ADOQInsertar->SQL->Add("INSERT INTO candidatos(Id,Nombre) VALUES(\""+ECodigo->Text.Trim()+" Segundo campo \")");

porque he probado con \"," y todo eso me da fallo. Un saludo.
Responder Con Cita
  #5  
Antiguo 04-11-2005
Ivan_25 Ivan_25 is offline
Miembro
 
Registrado: oct 2005
Posts: 87
Poder: 21
Ivan_25 Va por buen camino
Solucionado

ADOQInsertar->SQL->Add("INSERT INTO candidatos(Id,Nombre) VALUES('"+ECodigo->Text.Trim()+"','"+ENombre->Text.Trim()+"')");

Gracias a tod@s
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


La franja horaria es GMT +2. Ahora son las 21:02:50.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi