| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
carlos estrada Cdt

Registrado: 29 Nov 2003Mensajes: 4Ubicación: morelos,mexico
|
Publicado: Lun 01 Dic, 2003 12:24 am Asunto: bases de datos (URGEME) |
|
|
como introducir sentencias SQL en tiempo de ejecucion y desplegar su resultado (p.e. en un DBGRID), la introducion la hago en un campo memo y por medio de un boton desplego el resultado, no hay problemas con el select, pero si con el insert y el delete.
Por ahora lo que esta en el campo memo lo añado al componente sql
Les agradecera la ayuda |
|
| Volver arriba |
|
 |
_Viktor Master


Registrado: 20 Jul 2003Mensajes: 463Ubicación: Santiago, Los Angeles - Chile
|
Publicado: Lun 01 Dic, 2003 12:26 am Asunto: |
|
|
Seria algo como esto:
Para conectar todos los componentes:
| Código: |
DataSource1->DataSet = Query1;
DBGrid1->DataSource = DataSource1;
|
Para hacer una consulta con el Query, el resultado de tu consulta se mostraria en el DBGRid:
| Código: |
Query1->SQL->Clear();
Query1->SQL->Add("Select * From Tabla") ;
Query1->Close();
//Open se usa solo al hacer una consulta de datos
Query1->Open();
|
Para insertar una dato:
| Código: |
Query1->SQL->Clear();
Query1->SQL->Add("Insert Into Tabla Values(:p1)") ;
//Le das el valor al parametro p1 (Lo que contenga Edit1)
Query1->ParamByName("p1")->AsString = Edit1->Text;
Query1->Close();
//ExecSql se usa al insertar, modificar y borrar
Query1->ExecSQL();
|
Espero te sirva.
Saludos! _________________ "Ser inteligente no es ser mas, solo equivocarse menos y no usar Visual Basic"
Atte.
Victor Yañez
Apoyen el Proyecto OpenSource del Club Builder. Ya tenemos componentes Listos!!! |
|
| Volver arriba |
|
 |
carlos estrada Cdt

Registrado: 29 Nov 2003Mensajes: 4Ubicación: morelos,mexico
|
Publicado: Lun 01 Dic, 2003 12:42 am Asunto: |
|
|
| Eso si lo he podido hacer te lo agradezo, pero tengo que hacer una especie de editor de sentencias SQL, que en la pantalla el usuario introzuca la que quierq(Inset,Delete o Select) y que le muestre el resultado. |
|
| Volver arriba |
|
 |
_Viktor Master


Registrado: 20 Jul 2003Mensajes: 463Ubicación: Santiago, Los Angeles - Chile
|
Publicado: Lun 01 Dic, 2003 5:51 am Asunto: |
|
|
Hola, lo he hecho sin ningun problema, quedo algo asi:
Puse lo de la opcion para distinguir cuando es necesario hacer un Open o un ExecSQL con el Query, tu puedes hacer una busqueda dentro del contenido del Memo para distinguir (lo hice asi por tiempo).
Y el codigo correspondiente seria este:
| Código: | //---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Query1->SQL->Clear();
Query1->SQL->Add(Memo1->Text);
Query1->Close();
if(Seleccion->Checked)
Query1->Open();
else if(Alteracion->Checked)
{
Query1->ExecSQL();
//Esto de abajo es para ver enseguida los datos insertados, modificados o eliminados
Query1->SQL->Clear();
Query1->SQL->Add("Select * From Tabla");
Query1->Close();
Query1->Open();
}
else
ShowMessage("Debe elegir una opción");
}
//--------------------------------------------------------------------------- |
Cuando digo alteracion, me refiero al estado fisico de la tabla es decir si hacer un Insert, Update o un Delete.
Puedes bajar el ejemplo de aqui: Ejemplo Para BCB6 (va con la la pequeña tabla que use de ejemplo)
Espero entiendas la idea.
Saludos!!!! _________________ "Ser inteligente no es ser mas, solo equivocarse menos y no usar Visual Basic"
Atte.
Victor Yañez
Apoyen el Proyecto OpenSource del Club Builder. Ya tenemos componentes Listos!!! |
|
| Volver arriba |
|
 |
|