Programación General > C++ Builder

 MODIFICAR BASE DE DATOS

(1/2) > >>

alfaman:
Hola buenas a todos, soy novato en el uso de base de datos y tengo algunas dudas sobre ello.

He creado mi basde de datos y ya lo he incluiod en el formulario de builder usando el TABLE,DATASOUSE y DBGRID.
Mi duda es la siguiente.

Como puedo accesar a la tabla desde codigo para poder modificarlo ya que este corriendo el programa, por ejemplo si en la tamabla tengo una lista de productos y precios y cantdiades ejemplo.

PRODUCTOS    PRECIOS     CANTDIADA
    pelotas           10                100
     llaves             29                80

PEDIDO [-----]CANTIDAD[-----]

Que si por ejemplo hay un pedido de 5 pelotas y se acepte, se modifique la base de datos que en la columna de cantidad de pelotas baje a 95

Mas que nada ver cual es la sitaxis que se usa en el BDGrid para que se pueda modificar, aparte si hago una busqueda de alguna cosa me la señala con una flechita, quisiera saver como poder sombrear toda la fila del producto que se encontro en el BDGrid.

Les agardeseria mucho su ayuda.

Saludos

AnimaSubtilis:
Pues yo utilizo componentes ado me imagino que debe hacerse de la misma manera...

Por mi parte creo en otro form una vista para agregar y modificar datos...

en dicha forma coloco los campos de la tabla mediante a TDBEdit que estan en DataControls

en la propiedad DataSource coloco la tabla designada y en DataFied coloco el campo deseado

en la forma donde se encuentra el dbgrid coloco 2 botones (Insertar,Editar)

En insertar coloco el siguiente codigo


--- Código: C++ --- void __fastcall TFter::BitBtn1Click(TObject *Sender){ Tter->Open();//abro la tabla Tter->Append();//aca le digo que voy a insertar Fagrter->ShowModal();//llamo a la forma donde voy a insertar}  
en Editar


--- Código: C++ ---  void __fastcall TFter::BitBtn2Click(TObject *Sender){ Tter->Open();//abro la tabla Tter->Edit(); //Le digo que voy a editar Fagrter->ShowModal();//llamo la forma}  
en la forma de insercion

al darle Ok en el boton le doy el siguiente codigo


--- Código: C++ --- void __fastcall TFagrter::BitBtn1Click(TObject *Sender){ if(Fter->Tter->State==dsInsert)//pregunto si es insercion {  Fter->Tter->Post();//grabo informacion  Fter->Tter->Next(); } if(Fter->Tter->State==dsEdit)//pregunto si es edicion {  if(Application->MessageBox("Desea Guardar los cambios","Advertencia",MB_YESNO)==IDYES)   Fter->Tter->Post();//grabo informacion  else   Fter->Tter->CancelUpdates(); }}  
espero que eso sea util..

tauego.........

alfaman:
Hola amigo muchisimas gracias por tu ayuda, gracias a eso he logrado hacer lo que necesitaba  :D
Ahora lo que me ahce falta es saver como sombrear la fila del produto que se encuentra en la busqueda, ejemplo

Si se busca en la seccion de produtos "TECLADO" y se encuentra ver la forma de que aparte de que la flechita indique la fila de ese produto esta tambien se sombree para poder identificar bien el contenido de ese producto :

Les agardeseria mucho su ayuda en ese aspecto .

AnimaSubtilis:
:rolleyes: ...puss la verdad lo de sombrear una fila nunca lo he hecho....

seria interesante saber como.... :P

Mire lo que yo hago es hacer un filtro de la tabla para que me saque solo lo que yo nescesito ver ...

En TTable en la propiedad filtered=true
en filter ubico una condicion inicial no
estado='activo'
ubico unos edit locales para ingresaar la informacion deseada....
en un boton programo lo siguiente


--- Código: C++ --- void __fastcall TFter::BitBtn4Click(TObject *Sender){ AnsiString SQL="idtercero <> '' "; if(idtercero->Text != "")  SQL=SQL+"and idtercero= '"+idtercero->Text.Trim()+"'";//ingreso mas valores a la cadena if(Edit1->Text.Trim()!="")  SQL=SQL+"and nombres like '"+Edit1->Text.Trim()+"%'"; Tter->Filtered=false;//desactivo filtro Tter->Filter=SQL;    //iguala la sentencia a ejecutar al filtro de la TTable Tter->Filtered=true;// activo el filtro}  
de esta manera el dbgrid solo queda con los valores que desee...

si haya la forma de que se sombree solo uno me cuenta que seria interesante saerlo

taluego..................

alfaman:
Muy bien gracias lo provare para checar la funcion  :good:

Otra cosa que aca de surgir en las busquedas es que tengo un boton donde programe esto

void __fastcall TForm1::Button1Click(TObject *Sender)
{

if(!Table1->Locate("PRODUCTOS",bus->Text,TLocateOptions()))
{
Beep();
}

es donde indica  la respuesta  ahora lo que no logro hacer es que no idientifique muysuculas o minusculas ya que si no escribo el nombre del produto talcual esta en la base de datos esta no la encuentra por ejemplo si un producto se llama "TECLADO" y pongo "teclado" o "Teclado" esta no la encuentra hasta que pongo tala cual esta "TECLADO", aun no se la forma de ocmo  indiferencia entre mayusculas y minusciulas.

No se si sepas hacer esto, disculpa que sea tan pregunton pero en este aspecto ando muy verde aun jeje

saludos.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa