• Jueves 14 de Noviembre de 2024, 07:35

Autor Tema:  Insertar Registros  (Leído 2075 veces)

Jenncarol

  • Nuevo Miembro
  • *
  • Mensajes: 18
    • Ver Perfil
Insertar Registros
« en: Martes 20 de Mayo de 2008, 22:41 »
0
Buenas tardes necesito un poco de ayuda.

 -> Tengo una tabla llamada historial necesito insertar Registros en esa
 tabla desde otra y tambien los campos que son variables calculadas.

  La tabla historial esta compuesta por los siguientes campos:


  INTERES
 CAP_PAG
 TOTAL
 CAPIT_ACT
 N_PAGO
 N_P

 
 -> Lo que quiero hacer con el "Insert" valga la redundancia, es insertar los    
 siguientes registros:

 interes = valor calculado
 capital_pagado = valor calculado
 total_p = valor calculado
 cap_act = valor calculado
 cod_p= campo de la tabla prestamos
 n_p = campo de la tabla detalle_pagos
 cod_prest= campo de la tabla prestamos

 Y este el codigo que estoy utilizando:

  Qhistorico->SQL->Add("insert into Historial_detalle  
  values :interes, :capital_pagado, :total_p, :cap_act, :cod_prest, :cod_p)");
  Qhistorico->Close();
  Qhistorico->SQL->Clear();
  Qhistorico->ParamByName("INTERES")->AsString=saldo;
  Qhistorico->ParamByName("CAP_PAG")->AsString=cap_pagado;
  Qhistorico->ParamByName("TOTAL")->AsString=monto_pagar;
  Qhistorico->ParamByName("CAPIT_ACT)->AsString=capital;
  Qhistorico->ParamByName("N_PAGO")->AsString=cod_p;
  Qhistorico->ParamByName("CODIGO")->AsString=cod_pres;
  Qhistorico->ExecSQL();


 porfa necesito una orientacion, acerca de si me falta algo en el codigo, porque la
 verdad he intentado de varias formas y no me da.

                 :rolleyes: por su ayuda Gracias...

"La Perseverancia y el Deseo de Alcanzar cada dia una Meta debe ser el Norte de Todo Ser Humano, Poque solo de esa Forma se Consigue la Superacion"

Linspire

  • Miembro MUY activo
  • ***
  • Mensajes: 232
    • Ver Perfil
    • http://www.cedrela.com.mx
Re: Insertar Registros
« Respuesta #1 en: Viernes 30 de Mayo de 2008, 09:10 »
0
La verdad es que es una severa tontería lo que estás haciendo, y como ya me estoy muriendo de sueño me limitaré a colocarte un fragmento de código para insertar un registro, te recomiendo que uses el TTable en lugar de TQuery, éste último  a mi me funcionaba y después dejaba de hacerlo, en cambio el primero no me ha dado problemas.
Código: Text
  1.  
  2. void __fastcall TForm1::nuevo_registro(TStringGrid * grid, TTable * tabla)
  3. {
  4.  
  5.      String grueso, ancho, largo, def, clase;
  6.      int i,piezas,pt;
  7.      double volm3;
  8.  
  9.      tabla->TableName="inventario";
  10.      tabla->Open();
  11.  
  12.      for(i=1;i<grid->RowCount;i++)
  13.      {
  14.           grueso=grid->Cells[1][i];
  15.           ancho=grid->Cells[2][i];
  16.           largo=grid->Cells[3][i];
  17.  
  18.           if(!grid->Cells[4][i].IsEmpty())
  19.                piezas=grid->Cells[4][i].ToInt();
  20.           else piezas=0;
  21.           if(!grid->Cells[5][i].IsEmpty())
  22.                pt=grid->Cells[5][i].ToInt();
  23.           else pt=0;
  24.           if(!grid->Cells[6][i].IsEmpty())
  25.                volm3=grid->Cells[6][i].ToDouble();
  26.           else volm3=0;
  27.  
  28.           if((grueso.IsEmpty()==true)||(ancho.IsEmpty()==true)||(piezas==0)||(volm3==0))
  29.                NULL;
  30.           else
  31.           {
  32.                tabla->Insert();
  33.                tabla->FieldByName("Grueso")->Value=grueso;
  34.                tabla->FieldByName("Ancho")->Value=ancho;
  35.                tabla->FieldByName("Largo")->Value=largo;
  36.                tabla->FieldByName("Piezas")->Value=piezas;
  37.                tabla->FieldByName("Volpt")->Value=pt;
  38.                tabla->FieldByName("Volmc")->Value=volm3;
  39.                tabla->FieldByName("Definicion")->Value="Madera aserrada";
  40.                tabla->FieldByName("Especie")->Value="Pino";
  41.                tabla->FieldByName("Clase")->Value="Producto primario";
  42.                tabla->Post();
  43.           }
  44.      }
  45.  
  46.      tabla->Close();
  47.  
  48.  
  49. }
  50.  
  51.  
  52.  
Suerte!. :D
[size=109]My Blog de Programación[/i][/b][/size]
´


[size=109]Tan solo quiero pensar que todo es un sueño y que no quiero despertar
porque quiero controlarlo como yo quiera.
[/size]

Todo es posible, lo imposible solo cuesta un poco más. Dan Drown.

sonGoku

  • Nuevo Miembro
  • *
  • Mensajes: 22
    • Ver Perfil
Re: Insertar Registros
« Respuesta #2 en: Viernes 30 de Mayo de 2008, 11:35 »
0
Lo primero que tienes que decir es que formato esta la tabla, si es dbase debes trabajar con los componente TTable,TQuery,... y no puedes utilizar SQL, mientras si el formato es otro(Access,MySQL,...) debes trabajar con componenete como TADOTable,TADOQuery,... y si puedes utilizar SQL.

Sobre tu codigo fuente deberias hacerlo asi:

AnsiString sTexto = AnsiString("insert into Historial_detalle values ") + _
                     AnsiString(saldo) + AnsiString(",") + _
                     AnsiString(cap_pagado) + AnsiString(",") + _
                     AnsiString(monto_pagar) + AnsiString(",") + _
                     AnsiString(capital) + AnsiString(",") + _
                     AnsiString(cod_p) + AnsiString(",") + _
                     AnsiString(cod_pres) + AnsiString(")");
Qhistorico->SQL->Add(sTexto);
Qhistorico->ExecSQL();

aunque no obstante es mejor hacer con TTable o TADOTable utilizando los metodos Append (añade registro en blanco),Post(salva el registro en la base de datos.)

Jenncarol

  • Nuevo Miembro
  • *
  • Mensajes: 18
    • Ver Perfil
Re: Insertar Registros
« Respuesta #3 en: Lunes 2 de Junio de 2008, 17:16 »
0
muchas gracias...  :hola:

"La Perseverancia y el Deseo de Alcanzar cada dia una Meta debe ser el Norte de Todo Ser Humano, Poque solo de esa Forma se Consigue la Superacion"