Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Problema!!! ayudarme please!! novatillo.. jaajja (https://www.clubdelphi.com/foros/showthread.php?t=15375)

kye_z 21-10-2004 10:57:59

Problema!!! ayudarme please!! novatillo.. jaajja
 
buenas!!

os contare mi pequeño problema pero que para mi es de lo mas grande de momento, (he empezado con delphi i todo su mundo desde hace menos de 24horas... asi k imaginar lo perdido k voy).
tengo un formulario con 3 campos TEdit de nombres (nomClub, direccioClub i mailClub), a parte tengo una base de datos de la cual ya tengo hecha la conexion con un ADOConnect i tambien tengo preparado el ADOQuerry(esto en principio no tendiria que petar porque ayer consegui que funcionase en una prueba).

la idea es hacer un boton que lo unico que haga es recoger los campos Text de los Tedit i me haga un insert en la tabla Club que tengo creada en la base de datos( las columnas a rellenar serian nom_club, direccio i mail_club)

os pongo el procedimiento del botoncillo que tengo hecho i en principio me faltaria la parte del medio:
procedure TcrearClub.BcrearClubClick(Sender: TObject);
var
sentencia: TStrings;

begin
sentencia.Create

ESTO ES LO QUE ME FALTA.

conexio.Open
sqlCrearClub.Active:=True
sentencia.Free;
end;
end.

Tengo mas o menos la idea de lo que tengo que hacer pero no se pk no me va.. os escrivo lo k tengo hecho a ver si me veeis los fallos... me da errores pero como soy NOVATO NOVATO pues no se por donde empezar!!

sentencia.Add('Insert into Club (nom_club,direccio,mail_club) values (')
sentencia.Append(nomClub.SelText);
sentencia.Append(',');
sentencia.Append(direccioClub.SelText);
sentencia.Append(',');
sentencia.Append(mailClub.SelText);
sentencia.Append(')');
sqlCrearClub.SQL.AddStrings(sentencia); // el sqlCrearClub es el objeto ADOQuerry

muchissimas gracias a quien pueda solusionarme este pekeñoGRANDE problema...

algun dia ya no tendre que preguntar cosillas asi.. pero de momento no tengo otra eleccion...

o0 CarloS 0o

Investment 21-10-2004 11:29:56

Bueno kye_z. Lo primero que te recomiendo es que te leas la Guia de estilo y antes o despues de eso, que leas un manual de Delphi

Para hacer lo que quieres basta con lo siguiente:

Se supone que tiene un tTable en tu formulario asociado a la tabla en la que quieres insertar. Pues bien:

Código:

  TuTabla.Insert;
  TuTabla.fieldByName('NombreCampo1').asString:= edit1.text;
  TuTabla.fieldByName('NombreCampo'2).asString:= edit2.text;
  TuTabla.fieldByName('NombreCampo3').asString:= edit3.text;
  try
    TuTabla.Post;
  except
    ShowMessage('Error insertando registro en la tabla');
  end;


Investment 21-10-2004 11:35:10

Acabo de leer que tienes una Query.... en ese caso:

Código:

  TuQuery.Close;
  TuQuery.Sql.Clear;
  TuQuery.Sql.Add(' INSERT INTO TuTabla'+
                        'Values(:Campo1,:campo2,:campo3)');
  Tuquery.ParamByName('Campo1').value:= edit1.text;
  Tuquery.ParamByName('Campo2').value:= edit2.text;
  Tuquery.ParamByName('Campo3').value:= edit3.text;

  try
    TuQuery.ExceSQL;
  except
    ShowMessage('Error insertando registro en la tabla');
  end;


kye_z 21-10-2004 12:15:03

muchas gracias.....


intentare solucionar mi problema con tus solusiones de momento toy provando varias cosillas,

mmm la guia de estilos ya la he leido ya que me lo recomiendas i luego que sepas que estoy tambien con un par d manuales de delphi pero que si no encuentro la solucion alli o no me aclaro pues.. kreo yo... (i no es para meterme con nadie) que para eso estan los foros no?! para que la gente se ayude ya sea un novato como yo como un experto.

enga asias !!! ya os contare como lo he solucionao al final...

kye_z 21-10-2004 12:37:06

Solucion que me funciona!!
 
buenas,

despues de pelearme unos minutejos mas con las soluciones que me habeis dado, he encontrado esta que de momento me funciona, tengo que mejorarla para que no me pongan el campo nomClub en blanco i le den al boton... asi que en kuanto tenga mi solucion os la propondre para que me la critikeis!!

solcion acutal:

sqlCrearClub.Sql.Clear;
sqlCrearClub.Sql.Add(' INSERT INTO Club (nom_club) VALUES ("'+ nomClub.Text +'")');
conexio.Connected:=True;
sqlCrearClub.ExecSQL;
conexio.Connected:=False;

estoy abierto a criticas i lo que se os ocurra!! muchas gracias por vuestra desinteresada ayuda i espero ir mejorando...

Investment 21-10-2004 12:43:20

Mis recomendaciones son solo eso, recomendaciones. En ningun caso te lo he dicho para meterme contigo y si te lo has tomado asi acepta mis disculpas... pero creí que no la habias leido por el título de tu mensaje.

Y respecto a los manuales.... dales cañita que veras como en breve serás tu quien solucione problemas a los demas

Cita:

Empezado por kye_z
estoy tambien con un par d manuales de delphi pero que si no encuentro la solucion alli o no me aclaro pues.. kreo yo... (i no es para meterme con nadie) que para eso estan los foros no?! para que la gente se ayude ya sea un novato como yo como un experto.

Por supuesto que los foros estan para ayudarnos entre todos... eso no admite discusion ;)

Investment 21-10-2004 12:48:55

Cita:

Empezado por kye_z
buenas,

despues de pelearme unos minutejos mas con las soluciones que me habeis dado, he encontrado esta que de momento me funciona, tengo que mejorarla para que no me pongan el campo nomClub en blanco i le den al boton... asi que en kuanto tenga mi solucion os la propondre para que me la critikeis!!

Código:

//  Con esto evitarás que se intente grabar un registro en blanco

  if Trim(nomClub.Text)='' then
  begin
    ShowMessage('Rellene el campo NumClub');
    EXIT;
  end;


Cita:

Empezado por kye_z

estoy abierto a criticas i lo que se os ocurra!! muchas gracias por vuestra desinteresada ayuda i espero ir mejorando...

Solo quieres grabar el valor del campo nom_club?? Si es así, tu código está bien.

kye_z 21-10-2004 12:51:02

trankilo no me lo he tomado mal...

lo de que estare solusionano problemas a los demas.. de momento lo veo lejos.. pero voy aprendiendo poko a poko .... ya he comentao en el primer post que llevo apenas 24 horitas en esto.. i toy avanzando a pasos agigantados... jejeje


enga nos vemos!! i gracias por la ayuda

kye_z 21-10-2004 13:02:58

otias!! asias por el detallito del Trim() <... yo lo habia puesto sin.. i me he fijado que limpia la cadena de espacios !!

perfecto.. creo que ya empiezo a pillar algunas cosillas!!

muchas gracias!!


p.d. En principio tengo que contrlolar alguna que otra cosilla... pero para empezar... mejor poko a poko i de una en una.. jejejeje enga muchas gracias de nuevo!! :D

kinobi 21-10-2004 17:35:16

Hola,

sólo un comentario: cuando escribas código (Delphi, SQL, PHP...) procura encerrarlo entre las etiquetas adecuadas, para que quede resaltada su sintaxis y se utilice tipografía de ancho fijo. Así es mucho más fácil de leer. Ejemplo (sacado de tus propios mensajes):

Tal como tú lo has puesto:

sentencia.Add('Insert into Club (nom_club,direccio,mail_club) values (')
sentencia.Append(nomClub.SelText);
sentencia.Append(',');
sentencia.Append(direccioClub.SelText);
sentencia.Append(',');
sentencia.Append(mailClub.SelText);
sentencia.Append(')');
sqlCrearClub.SQL.AddStrings(sentencia); // el sqlCrearClub es el objeto ADOQuerry


Tal como quedaría con la etiqueta Delphi

Código Delphi [-]
sentencia.Add('Insert into Club (nom_club,direccio,mail_club) values (')
sentencia.Append(nomClub.SelText);
sentencia.Append(',');
sentencia.Append(direccioClub.SelText);
sentencia.Append(',');
sentencia.Append(mailClub.SelText);
sentencia.Append(')');
sqlCrearClub.SQL.AddStrings(sentencia); // el sqlCrearClub es el objeto ADOQuerry

Hace tiempo se publicó (en todos los foros) un mensaje con las instrucciones para el uso de estas etiquetas...

http://www.clubdelphi.com/foros/showthread.php?t=9993

Por cierto, si has leído la Guía de estilo, tal como comentas:

Cita:

Empezado por kye_z
mmm la guia de estilos ya la he leido

habrás leído esta parte:

Cita:

Empezado por Guía de estilo
Si en alguna ocasión quieres expresar que tu mensaje es muy urgente por cualquier motivo, no lo hagas poniendo títulos del tipo: "URGENTEEEE", "NECESITO AYUDA", "MUY URGENTE!!!!". Tienes que comprender que la gente que accede al foro se basa en los títulos para saber en qué te puede ayudar, y aunque en un principio pueden entrar a ayudarte, si la cosa es constante, acaban cansándose, y provocar el efecto contrario al que pretendías. Además, si queremos mantener un foro útil como fuente de información, debemos tener en cuenta que las búsquedas se realizan por el título; y esta clase de mensajes no nos ayudan.

entendarás que te pidamos que no vuelvas a utilizar títulos como el de tu primer mensaje en este hilo:

Cita:

Empezado por kye_z
Problema!!! ayudarme please!! novatillo.. jaajja

Saludos.

kye_z 22-10-2004 15:45:29

Buenas!!

al final lo ice asi!! despues de varias modificaciones...

Código:

begin
  if Trim(nomClub.Text) <> '' then
        begin
          sqlCrearClub.Sql.Clear;
          sqlCrearClub.Sql.Add(' INSERT INTO Club (nom_club');
          values:= ') VALUES ("'+ nomClub.Text;
          if Trim(direccioClub.Text) <> '' then
                begin
                  sqlCrearClub.Sql.add(',adreca_club');
                  values:= values+ '","' + direccioClub.Text;
                end;
               
          if Trim(mailClub.Text) <> '' then
                begin
                  sqlCrearClub.Sql.add(',mail_club');
                  values:= values+ '","' + mailClub.Text;
                end;
          sqlCrearClub.SQL.Add(values + '")') ;

          // aqui es conecta a la bdd i executa la SQL
          sqlCrearClub.ExecSQL;
          close;
        end
  else
          ShowMessage('Es obligatori omplir el cam Nom del club!!');
          EXIT;
  end;

de esta manera creo que queda algo mas claro.

enga muchas gracias por la ayuda!!

i la proxima vez ya intentare no poner ese topik... (las lei algo despues de colgar mi primer post!)


La franja horaria es GMT +2. Ahora son las 05:19:47.

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