⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clientc.cpp

📁 一个cb三层数据库的例子
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "clientc.h"
#include "clientdm.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "DBImageEn"
#pragma link "ieview"
#pragma link "ImageEnView"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::dktx_bClick(TObject *Sender)
{
if(dig->Execute())
   {    
        Image1->Picture->LoadFromFile(dig->FileName);
//        imagedc->Bitmap->LoadFromFile(dig->FileName);
//        DBImage1->Picture->Bitmap->LoadFromFile(dig->FileName);
   }        
}
//---------------------------------------------------------------------------
void __fastcall TForm1::imagedcImageChange(TObject *Sender)
{
     Image1->Picture->Bitmap = imagedc->Bitmap;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
TStream * pBlobStream;
AnsiString sql;
CustomerData->client_dset_in->Params->Clear();
CustomerData->client_dset_in->Close();
CustomerData->client_dset_in->CommandText="Insert into lx2 values('"+Edit1->Text+"',empty_blob())";
CustomerData->client_dset_in->Execute();
CustomerData->client_dset_in->Close();
CustomerData->client_dset_in->CommandText="";
CustomerData->client_dset_in->CommandText="select id,image from lx2 where id='"+Edit1->Text+"'";
 CustomerData->client_dset_in->Open();
CustomerData->client_dset_in->Edit();
CustomerData->client_dset_in->FieldByName("image")->Assign(Image1->Picture);
pBlobStream = CustomerData->client_dset_in->CreateBlobStream(CustomerData->client_dset_in->FieldByName("image"), bmReadWrite);
pBlobStream->Seek(0,soFromBeginning);
Image1->Picture->Graphic->SaveToStream(pBlobStream);
CustomerData->client_dset_in->Post() ;
CustomerData->client_dset_in->ApplyUpdates(-1);
pBlobStream->Free();
CustomerData->client_dset_in->Close();
ShowMessage("ok");  

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    DBGrid1->DataSource=Form1->client_ds;
    imagedc->DataSource=Form1->client_ds;
 //   DBNavigator1->DataSource=Form1->client_ds;
//    DBImage1->DataSource=client_ds;
//    DBImage1->DataField="image";

    imagedc->DataField="image";
    AnsiString sql;
    Image1->Visible=true;
    sql="select * from lx2";
    CustomerData->client_dset->Close();
    CustomerData->client_dset->DataRequest(sql);
    CustomerData->client_dset->Open();
 //   Image1->Picture->SaveToFile("temp.bmp");
}
//---------------------------------------------------------------------------



void __fastcall TForm1::Button4Click(TObject *Sender)
{
        byte *imagetemp;
        byte *imagedata;
        long bytenum,i;
        int begini;
        bool flag;
        flag=false;
       TMemoryStream* pms = new TMemoryStream();
       TMemoryStream* pms1 = new TMemoryStream();
//       TStream * tempstream;
//DataSet->SaveToStream(pms,dfBinary);
Image1->Picture->SaveToFile("temp.bmp");
pms->LoadFromFile("temp.bmp");
bytenum=pms->Size;
imagetemp=new byte [bytenum];
pms->Seek(0,soFromBeginning);
pms->Read(imagetemp,bytenum+1);
for(i=0;i<bytenum;i++)
{
//    ShowMessage(AnsiString(imagetemp[i]));
//    ShowMessage(AnsiString(int('B')));
    if(imagetemp[i]==int('B')&&imagetemp[i+1]==int('M')&&!flag)
    {
        flag=true;
        begini=i;
        imagedata=new byte [bytenum-i];
    }
    if(flag)
    {
        imagedata[i-begini]=imagetemp[i];
    }
}
flag=false;
pms1->Write(imagedata,bytenum-begini);
pms1->Free();
pms->Free();
delete [] imagedata;
delete [] imagetemp;
 DeleteFile("temp.bmp");      
}
//---------------------------------------------------------------------------


void __fastcall TForm1::Button3Click(TObject *Sender)
{
    Graphics::TBitmap *bmpfd=new Graphics::TBitmap();
    AnsiString imageno;
    DBGrid1->DataSource=Form1->client_ds;
    imagedc->DataSource=Form1->client_ds;
 //   DBNavigator1->DataSource=Form1->client_ds;
    imagedc->DataField="image";
    AnsiString sql;
    Image1->Visible=true;
    sql="select * from lx2";
    CustomerData->client_dset->Close();
    CustomerData->client_dset->DataRequest(sql);
    CustomerData->client_dset->Open();
    CustomerData->client_dset->First();
/*     TADOBlobStream *IMAGE;
    IMAGE=new TADOBlobStream((TBlobField*)CustomerData->client_dset->FieldByName("image"),bmRead);
    bmpfd->LoadFromStream(IMAGE);
    Image1->Picture->Bitmap->Assign(bmpfd);
    delete IMAGE;
    delete bmpfd;
       imageno=CustomerData->client_dset->FieldByName("id")->AsString;
    ShowMessage(imageno);
    sql="select image from lx2 where id='"+imageno+"'";
    ShowMessage(sql);
    CustomerData->client_dset_image->Close();
    CustomerData->client_dset_image->DataRequest(sql);
    CustomerData->client_dset_image->Open();
    TMemoryStream* pms = new TMemoryStream();
  ShowMessage("ok");
    void *MyBuffer = malloc(Field->DataSize);
    Field->GetData(MyBuffer,true);
    pms->Write(MyBuffer,Field->DataSize);
    ShowMessage(AnsiString(Field->DataSize));
    pms->SaveToFile("c:\\pms.bmp");
    free(MyBuffer);  */
}
//---------------------------------------------------------------------------





⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -