Menyimpan gambar ke database menggunakan Delphi

Tutorial berikut menjelaskan bagaimana cara menyimpan gambar atau foto ke database menggunakan delphi dan databasenya MS. Access, sebelumnya saya sudah membuat tulisan cara menyimpan gambar atau foto ke database tetapi menggunakan Visual Basic.

Mengapa menyimpan gambar ke database menggunakan Delphi

Sebenarnya tutorial tentang bagaimana cara menyimpan gambar atau foto ke database menggunakan delphi sudah banyak di internet, tetapi saya tidak menemukan satupun dari mereka yang cocok dalam artian programnya oke dari satu sisi tetapi error di sisi yang lain, oleh karena itu saya mempunyai ide untuk menulis artikel ini.

Database yang digunakan menyimpan gambar

Pada contoh ini saya menggunakan database MS Access, tentu saja boleh menggunakan yang lain seperti database MySQL dengan komponen seperti MySQL DAC dari microOLAP, MyDAC dariΒ Devart atau dari yang lainnya.

ProgramΒ ini, selain menyimpan gambar juga menampilkan gambarnya, untuk format dan tabel databasenya silahkan lihat tulisan cara menyimpan gambar atau foto menggunakan Visual Basic.

Untuk menghemat waktu teman-teman berikut langsung saja saya bahas program dan source code-nya. Oh iya… Sebelum masuk ke pembahasan ada baiknya saya jelaskan dahulu, inti dari program ini adalah menyimpan gambar ke database dengan format gambar .bmp, kenapa harus format .bmp? Apakah format yang lain tidak didukung? Tentu saja didukung tetapi ada keperluan khusus yang mengharuskan formatnya harus berupa .bmp misalnya ketika teman-teman ingin menampilkan gambar ke report atau sebuah laporan yang menggunakan komponen Quick Report gambar yang didukung hanya yang memiliki format bitmap(.bmp).
Menyimpan gambar ke database dengan Delphi

Komponen pada form Delphi

Sekarang yang harus kita lakukan adalah menambahkan komponen ke form seperti pada gambar di atas, dengan komponen dan propertinya sebagai berikut :

Nama Komponen Properti
ADOConnection1 LoginPrompt = False
Buat koneksinya dengan cara klik ganda pada komponen ADOConnection1 kemudian klik Build->Pilih : Microsoft Jet 4.0 OLE DB Provider->Carilah lokasi databasenya->Ok->Ok
ADOQuery1 Connection = ADOConnection1
CursorType = ctStatic
Active = True
Sekarang klik kanan ADOQuery1 dan pilih Fields Editor->Klik kanan->Add all fields. Lihat gambar dibawah ini :
Menambahkan field pada AdoQuery fields editor
DataSource1 DataSet = ADOQuery1
DBGrid1 ReadOnly = True
DataSource = DataSource1
Kita akan menampilkan field “nama” saja, untuk itu klik kanan DBGrid1->Columns Editor. Lihat gambar di bawah, klik 1->Isi sesuai 2 dan 3. Dbgrid Column Editor
OpenPictureDialog1 Filter = All (*.jpg;*.jpeg;*.bmp)|*.jpg;*.jpeg;*.bmp|JPEG Image File (*.jpg)|*.jpg|JPEG Image File (*.jpeg)|*.jpeg|Bitmaps (*.bmp)|*.bmp
Label1 Caption = Nama
Edit1 Text = ” (kosongkan)
Image1 Stretch = True
Button1 Caption = Cari gambar dan simpan

Kode:Β Menyimpan gambar ke database

Selanjutnya kita akan menulis barisan kode programnya.
Tambahkan sedikit baris kode berikut pada bagian uses :

Pada bagian type tambahkan barisan kode berikut :

Tambahkan juga procedure berikut di bawah implementation :

Sekarang klik ganda button yang ada pada form dan gantikan kodenya dengan yang di bawah ini :

Ketika DbGrid di klik, gantikan kode eventnya sebagai berikut :

Edit: Dengan database MySQL

Saya mencoba untuk komponen MyDAC dariΒ Devart perlu dimodifikasi sedikit untuk even DbGrid sebagai berikut:

Sedangkan MySQL DAC dari microOLAP tidak terjadi masalah dengan kode yang sebelumnya.

Edit pada 21 Feb 2013: Dengan database Microsoft SQL Server

Untuk SQL Server <= 2005 biasanya tipe data blob untuk penyimpanan foto belum didukung, oleh karena itu bisa menggunakan alternatif lain yaitu gunakan tipe data varbinary(max). Nah jika MS. SQL Server > 2005, kayaknya sudah mendukung tipe data Blob.

Okey sekian tutorial saya kali ini, semoga mudah dipahami πŸ˜€ dan bermanfaat buat sahabat CB, jika sahabat ingin menyimpan gambar tanpa meyimpan gambarnya ke database, hanya di simpan kedalam folder maka silahkan lihat tutorial alternatif menyimpan gambar dengan Delphi 7. Jangan lupa berikan juga +1 Google sahabat di tulisan ini

Kami (Catatan Belajar) juga hadir di Facebook, like kami ya klik tombol berikut:

 
Signature :

No copy paste content please…. If you want do that, please include the original source. Original Post by catatanbelajar.com, written by , .

223 thoughts on “Menyimpan gambar ke database menggunakan Delphi”

  1. mau naxk kan aq udah buat perintah seperti di atas berhasil tp kalo di tambah tanngal di data basenya kok eror ya mas mohon pencerahanya

    1. Ini sekaligus jawaban yang di atas ya. Pesan errornya gimana? mungkin format tanggal pada DateTimePicker enggak sama dengan format di sistem windownya kali sehingga kalau di klik DBGrid-nya terjadi error, karena saya juga pernah ngalamin kayak gitu mas. Kalau masalahnya seperti itu samakan forma tanggalnya.

      1. Mas,itu kn tombol buttonnya 2in1,meload skaligus simpan.
        Nah,saya kn bikin tabel pasien yg fieldnya tntg identitas pasien tsb dan ada field fotonya. button load/browse sy gunakan untuk load n tampilkan gbr di dbimage dan button save untuk menyimpan smua data berdasarkan field termasuk foto. Itu gmn coding simpannya ya,Mas?

    1. diubah menjadi :

      Trus anggap saja ini adalah button save :

      1. Mas,saya kn pakainya delphi6,ini coding saya tapi ko msh error ya di bagian2 yg saya ksh keterangan (//) :

        ======================================================================

        procedure Tfpasien.DBGrid1CellClick(Column: TColumn);
        var
        Stream : TADOBlobStream; // UNDECLARED IDENTIFIER TADOBlobStream
        GambarBmp : TBitmap;
        Buffer : Word;
        begin
        if (not Modul.ADOQpasien.Eof) then
        begin
        Edit1.Text:= DBGrid1.Fields[0].Text;
        GambarBmp := TBitmap.Create;
        Stream := TADOBlobStream.Create(Modul.ADOQpasien,bmRead); // TOO MANY ACTUAL PARAMETERS,MISSING OPERATOR or SEMICOLON,
        Stream.Read(Buffer,SizeOf(Buffer)); // LEFT SIDE CANNOT BE ASSIGNED TO, MISSING OPERATOR or SEMICOLON
        Stream.Position:= 0; //MISSING OPERATOR or SEMICOLON, INCOMPATIBLE TYPES : “TPosition & Integer”

        GambarBmp.LoadFromStream(Stream);
        Image1.Picture.Bitmap := GambarBmp;
        Image1.Refresh;
        end;
        end;
        end;

        procedure Tfpasien.BitBtnsimpanClick(Sender: TObject);
        var gambar : TMemorystream;
        begin
        gambar := TMemorystream.Create;
        Image1.Picture.Graphic.SaveToStream(gambar);
        Modul.ADOQpasien.Close;
        Modul.ADOQpasien.SQL.Clear;
        Modul.ADOQpasien.text:= ‘insert into pasien // UNDECLARED IDENTIFIER “TEXT”
        (Id_Pasien,Nama,Tempat,Tgl_Lahir,Alamat,Nama_Ortu/Klg,Riwayat,Contact,Tgl_Reg,Status,Foto) values (:p0, :p1, :p2, :p3, :p4, :p5, :p6, :p7, :p8, :p9, :p10,)’;
        Modul.ADOQpasien.Parameters[0].Value := Edit1.Text;
        Modul.ADOQpasien.Parameters[1].Value := Edit2.Text;
        Modul.ADOQpasien.Parameters[2].Value := Edit3.Text;
        Modul.ADOQpasien.Parameters[3].Value := DateTimePicker2.Date;
        Modul.ADOQpasien.Parameters[4].Value := Edit4.Text;
        Modul.ADOQpasien.Parameters[5].Value := Edit5.Text;
        Modul.ADOQpasien.Parameters[6].Value := Memo1.Text;
        Modul.ADOQpasien.Parameters[7].Value := Edit9.Text;
        Modul.ADOQpasien.Parameters[8].Value := DateTimePicker1.Date;
        Modul.ADOQpasien.Parameters[9].Value := Combobox1.Text;
        Modul.ADOQpasien.Parameters[10].LoadFromStream(gambar,ftBlob); // UNDECLARED IDENTIFIER “ftBlob”
        Modul.ADOQpasien.ExecSQL;
        tampildata();
        Edit1.SetFocus;
        enablebutton;
        end;

        ======================================================================
        Mhn bantuannya,udah pusing g nemu2 jwbn ni,Mas. Maaf sy sdh sangat merepotkan.Trimaksh sebelumnya.

        1. Maaf lama balas, baru login ke blog. Hmm… kalau tutorial ini di ikuti ada error gak sama sourcenya? klau gak ada bearti ada yang salah sama kode programnya mbak.

          Kalau mbak belum coba program yang saya jelaskan di atas, kalau mau saya kirimkan source code program ininya.

          1. Blm tu,Mas.
            Saya langsung terapkan program Mas ini ke pogram saya.
            Kalau gt boleh dkirimkan ke email saya,Mas.
            anitameylinda@ymail.com
            Itu kn di fieldnya Mas hy ada nama dan foto,sedangkan saya ada text,combobox,memo,dan datetimepicker apa tdk ada tambahan/perubahan coding,Mas?
            Trs Mas kn pke delphi7 sy delphi6,apa ada perbedaan komponen ya,kok TADOBlobStream nya sy g detect?
            Mhn bantuannya,Mas.
            Trima ksh byk sebelumnya.

  2. Mas,saya kn pakainya delphi6,ini coding saya tapi ko msh error ya di bagian2 yg saya ksh keterangan (//) :

    ======================================================================

    procedure Tfpasien.DBGrid1CellClick(Column: TColumn);
    var
    Stream : TADOBlobStream; //undeclared identifier TADOBlobStream
    GambarBmp : TBitmap;
    Buffer : Word;
    begin
    if (not Modul.ADOQpasien.Eof) then
    begin
    Edit1.Text:= DBGrid1.Fields[0].Text;
    GambarBmp := TBitmap.Create;
    Stream := TADOBlobStream.Create(Modul.ADOQpasien,bmRead); // too many actual parameters,missing operator or semicolon
    Stream.Read(Buffer,SizeOf(Buffer)); // Left side cannot be assigned to,Missing operator or semicolon
    Stream.Position:= 0; //Missing operator or semicolon, Incompatible types:TPosition & Integer
    GambarBmp.LoadFromStream(Stream);
    Image1.Picture.Bitmap := GambarBmp;
    Image1.Refresh;
    end;
    end;
    end;

    procedure Tfpasien.BitBtnsimpanClick(Sender: TObject);
    var gambar : TMemorystream;
    begin
    gambar := TMemorystream.Create;
    Image1.Picture.Graphic.SaveToStream(gambar);
    Modul.ADOQpasien.Close;
    Modul.ADOQpasien.SQL.Clear;
    Modul.ADOQpasien.Locate:= ‘insert into pasien (Id_Pasien,Nama,Tempat,Tgl_Lahir,Alamat,Nama_Ortu/Klg,Riwayat,Contact,Tgl_Reg,Status,Foto) values (:p0, :p1, :p2, :p3, :p4, :p5, :p6, :p7, :p8, :p9, :p10,)’; // Incompatible types Boolean & string,Not enough actual parameters
    Modul.ADOQpasien.Parameters[0].Value := Edit1.Text;
    Modul.ADOQpasien.Parameters[1].Value := Edit2.Text;
    Modul.ADOQpasien.Parameters[2].Value := Edit3.Text;
    Modul.ADOQpasien.Parameters[3].Value := DateTimePicker2.Date;
    Modul.ADOQpasien.Parameters[4].Value := Edit4.Text;
    Modul.ADOQpasien.Parameters[5].Value := Edit5.Text;
    Modul.ADOQpasien.Parameters[6].Value := Memo1.Text;
    Modul.ADOQpasien.Parameters[7].Value := Edit9.Text;
    Modul.ADOQpasien.Parameters[8].Value := DateTimePicker1.Date;
    Modul.ADOQpasien.Parameters[9].Value := Combobox1.Text;
    Modul.ADOQpasien.Parameters[10].LoadFromStream(gambar,ftBlob); // Undeclared identifier ftBlob
    Modul.ADOQpasien.ExecSQL;
    tampildata();
    Edit1.SetFocus;
    enablebutton;
    end;

    ======================================================================
    Mhn bantuannya,udah pusing g nemu2 jwbn ni,Mas. Maaf sy sdh sangat merepotkan.Trimaksh sebelumnya.

  3. mas saya mau nanya juga ni.. tpi ahk mlenceng dari materi di atas..,
    kenpa y mas setiap aq mau run program delphi ku slalu muncul error
    Cannot focus a disabled or visible window…, padahal properties enabled dan visible nya sudah sya true smua…, mhon bantuanya y mas… saya sdh pusing ngotak-ngatik tp ngk bisa juga..

    1. Owh itu karena kita focus pada saat window atau komponennya memiliki properties enabled = false atau visible = false.

      Pada permasalahan yang mas limsi itu kalau semua properties enabled dan visible nya sudah true, coba dilihat pada saat event form create-nya, jangan-jangan ada kode misalnya seperti ini edit1.SetFocus; atau kode lain yang intinya SetFocus. Kalau ada saya sarankan untuk dipindahkan ke event form show seperti ini :

      procedure TForm1.FormShow(Sender: TObject);
      begin
      edit1.SetFocus;
      end;

      Nah kenapa pada event form show? karena semua komponennya sudah visible, kalau pada form create-kan segala komponennya masih belum muncul.

      Oke selamat mengkoding lagi πŸ™‚

      1. masih belum bisa i mas…, sya kan buat procedure cleardata, apa yg setfocus di clear data di hapus juga trus dipindahkan ke form show smua,
        klw untuk form create sya tidak menggunkan kode setfocus…,

          1. Ini procedure tambahan yg saya gunakan :
            Procedure enablebutton;
            Procedure disablebutton;
            Procedure aktif;
            Procedure nonaktif;
            Procedure cleardata;

            procedure Tinput_agtmula.nonaktif;
            begin
            DateTimePicker1.Enabled:=False;
            edit1.Enabled:=False;
            edit2.Enabled:=False;
            edit3.Enabled:=False;
            dateTimePicker2.Enabled:=False;
            combobox3.Enabled:=False;
            combobox1.Enabled:=False;
            combobox2.Enabled:=False;
            edit4.Enabled:=False;
            edit6.Enabled:=False;
            edit11.Enabled:=False;
            edit7.Enabled:=False;
            edit8.Enabled:=False;
            dateTimePicker3.Enabled:=False;
            edit9.Enabled:=False;
            edit10.Enabled:=False;
            end;

            procedure Tinput_agtmula.aktif;
            begin
            DateTimePicker1.Enabled:=True;
            edit1.Enabled:=True;
            edit2.Enabled:=True;
            edit3.Enabled:=True;
            dateTimePicker2.Enabled:=True;
            combobox3.Enabled:=True;
            combobox1.Enabled:=True;
            combobox2.Enabled:=True;
            edit4.Enabled:=True;
            edit6.Enabled:=True;
            edit11.Enabled:=True;
            edit7.Enabled:=True;
            edit8.Enabled:=True;
            dateTimePicker3.Enabled:=True;
            edit9.Enabled:=True;
            edit10.Enabled:=True;
            end;

            procedure Tinput_agtmula.enablebutton;
            begin
            tambah.Enabled:=True;
            ubah.Enabled:=false;
            hapus.Enabled:=true;
            simpan.Enabled:=false;
            batal.Enabled:=true;
            end;

            procedure Tinput_agtmula.disablebutton;
            begin
            tambah.Enabled:=false;
            ubah.Enabled:=true;
            hapus.Enabled:=False;
            simpan.Enabled:=true;
            batal.Enabled:=true;
            end;

            Procedure Tinput_agtmula.cleardata;
            begin
            DateTimePicker1.Date:=now();
            edit1.Text:=”;
            edit2.Text:=”;
            edit3.Text:=”;
            dateTimePicker2.Date:=now();
            combobox3.Text:=”;
            combobox1.Text:=”;
            combobox2.Text:=”;
            edit4.Text:=”;
            edit6.Text:=”;
            edit11.Text:=”;
            edit7.Text:=”;
            edit8.Text:=”;
            dateTimePicker3.Date:=now();
            edit9.Text:=”;
            edit10.Text:=”;
            end;

            Kode pada Form :
            procedure Tinput_agtmula.FormShow(Sender: TObject);
            begin
            nonaktif;
            enablebutton;
            edit1.SetFocus;
            end;

            procedure Tinput_agtmula.FormCreate(Sender: TObject);
            begin
            cleardata;
            with mdpmr.Qagtmula do
            begin
            Active := False;
            SQL.Clear;
            SQL.Text :=’ SELECT * FROM agt_pmr_mula ‘;
            Active := True;
            end;
            end;

            procedure Tinput_agtmula.FormActivate(Sender: TObject);
            begin
            FormCreate(Sender);
            end;

          2. Owh saya tau mas hehehe….

            Gini aja biar mudah, hapus edit1.SetFocus; pada event form show, trus tambahkan edit1.SetFocus; pada bagian akhir dari prosedure aktif.

            Kalau berhasil jangan lupa kasih tau ya πŸ™‚

  4. O…Saya baru baca tutorial Mas yg VB tentang isi tabelnya.
    Ternyata yang Mas bikin disini tabel foto berdiri sendiri ya,jd ntr browsenya dari tabel tsb sesuai namanya gt.
    Punya saya kn g ada tabel fotonya Mas,foto itu merupakan salah satu field dr tabel pasien,jd browse fotonya bisa dr mana saja di komputer,sy tdk bikin tabel foto tersendiri.
    Kl kyk saya gini codingnya gmn,Mas?

      1. Mas,program Mas sy cb di delphi6 bs jln dg lncr.
        Setelah sy pelajari ternyata kslhn sy ada 2,yaitu di peletakan penambahan procedure seperti procedure tampildata(),dbgridcellclik,dst. Harusnya ditaruh di “type” tp sy taruh dbwh “private” n yg kdua sy tdk mnambahkan ADOQuery masing2 field sprti py Mas ADOQuery1ID: TAutoIncField;, ADOQuery1nama: TWideStringField;, ADOQuery1gambar: TBlobField;.
        Tu dtulis manual dcoding tnp menambahkn di form kn?

    1. Hmm…. bearti mbaknya gak ikut prosedur tutorialnya ya hehehe πŸ™‚ πŸ™‚

      “ADOQuery masing2 field sprti py Mas ADOQuery1ID: TAutoIncField;, ADOQuery1nama: TWideStringField;, ADOQuery1gambar: TBlobField;” di dapat kalau mbak ikut langkah pada tabel setelah tulisan :

      “Sekarang yang harus kita lakukan adalah menambahkan komponen ke form seperti pada gambar di atas, dengan komponen dan propertinya sebagai berikut :”

      1. Iya,Mas. Maklum saking mumetnya,jd gini.
        Ternyata delphi6 memang tdk support dg property TWideStringField n TBlobField,brusan saya cb ddelphi7 temen saya muncul,kl ddelphi6 g muncul.
        Py software delphi7 g,Mas?. Blh sy minta?. Sy dh 3x cb install g bs trus,apa g support dg OS sy yg XP atau gmn sy g tw.

      1. Mas,Sy dh coba search download delphi7 g brhasil2 diinstal. Dari temen sy apalagi,dh dr awal sy krjain program ini instal sw delphi7 dr dy,tp g bs.
        Tlg mt sw nya Mas,krimkan ke email sy.

        Emg kl dikirim lwt email dlm bntuk zip gt g bs ya,Mas?
        Kn kl dlm bntuk zip kmgkinan filenya akan lbh kecil.
        Please,Mas.THX

        1. Dh saya coba 3x,tetep gagal,Mas. Ni pesan errornya :

          Error 1309,error reading from file :
          F:studydelphidelphi7installprogramfilesborlanddelphi7Rave5RvCSBars.rvc.
          Verify that the file exists and that you can access it.

        1. Delphi7 dah berhasil saya download n install,Mas.
          Tp setelah saya buka dan open project,halaman formnya g bs muncul,yg muncul cm halaman coding aja. Udh klik kanan tp tab view as formnya nonaktif. Masalahnya apa ya,trs gmn cr ngatasinya?

          1. Ga bisa,Mas.
            Kok susah bgt to ni delphi7,Mas?
            Pantesan sm2 ngrepotin bgt ya,Mas?
            Kami lagi magang,disuruh bkin rogram,pdhl dr kampus g mewajibkan bkin. kl g selesai nilai magang kita g diksihkan,jd hrs jd. *malah curhat ya?*

          2. Bukan bingung krn itu,Mas.
            Kl delphi7 yg sy download tampilannya dh complete kyk td itu sy g mslh. Tp masalahnya setelah sy perhatikan ternyata delphi instalan sy itu komponen yg ada cm standar,itupun cm icon panah dan frame,sdgkn icon2 n komponen2 yg lain g ada?
            apa hs diinstal sndiri ya,Mas?

    1. Owh mbak limsi ya? tak kira mas e hehe, sorry mbak :D. Dari kode yang mbak kasi tadi kok saya tidak menemukan pemanggilan prosedure aktif ya? supaya lebih tau prosesnya. Oke coba saya reka ya, begini :

      Form show :

      procedure Tinput_agtmula.FormShow(Sender: TObject);
      begin
      nonaktif;
      enablebutton;
      // edit1.SetFocus; // < = ini dihilangkan end; Prosedure aktif : procedure Tinput_agtmula.aktif; begin DateTimePicker1.Enabled:=True; edit1.Enabled:=True; edit2.Enabled:=True; edit3.Enabled:=True; dateTimePicker2.Enabled:=True; combobox3.Enabled:=True; combobox1.Enabled:=True; combobox2.Enabled:=True; edit4.Enabled:=True; edit6.Enabled:=True; edit11.Enabled:=True; edit7.Enabled:=True; edit8.Enabled:=True; dateTimePicker3.Enabled:=True; edit9.Enabled:=True; edit10.Enabled:=True; edit1.SetFocus; // <= tambahkan ini end; Semoga membantu, kalau tidak bisa, kalau bersedia silahkan kirim source codenya ke email kontak saya di http://catatanbelajar.com/about/ivo-idham-perdameian/

    1. Oke, silahkan kirim ke email. Kebetulan saya lagi free kerjaan. Sebenarnya sih ada tapi itu termasuk freelance jadi kantor nganggur. Owh iya file .exe nya jangan disertakan ya karena tidak bisa dikirim melalui email

    2. Mbak Lim, sya sdah cba programnya tapi itu nampaknya bkan program yang utuh, artinya yang dikirim bukan yang sedang mbak kerjakan skrng. Tpi tdk apa2 krna spt yang sya blng sblmnya asal mbak percya penuh sma sya, sya coba mbntu dgn mksimal.

      Tapi begini aja siapa tau membantu. Buka projek delphinya trus tekan Shift+Ctrl+F11 pada tab Forms => pada bagian Auto-create forms => pilih yang diperlukan saja seperti login atau form utama dan modul dbnya

  5. ngk mas, itu emg program sya buat skrg sbgai tugas sya slama mgang di pmi surakrta, memang ada yg prnah buat juga program sperti itu, tp di buat oleh relawan yg ad di sumedang…, ini mgang sya sdh mau slesai tp program itu lum jadi2 juga, pdhal nilainya ngk kluar klw program itu ngk jadi. kirimin ke dua sya tdi itu project yg sama yg sya buat ulang. y nanti sya coba sran mas…
    Terima kasih sudah banyak membantu…

    1. Owh begitu, maaf mbak soalnya saya periksa errornya banyak, diantaranya ada pemanggilan prosedur yang tidak sesuai dengan formnya. Selain itu saya juga berkendala karena databasenya juga enggak ada, Klau mbak bersedia kirimkan juga databasenya.

  6. sudah sya kirimkan databasenya bersma dgn kiriman sya yg ke 2, ohx databasenya kan sya buat di Navicate Premium td yg sya kirimkan itu yg sdha sya eksport.
    Ohnya sya juga sdh coba sran mas yg td, bisa di run tp link2 form yg ad di menu utama tidak bisa di buka, malah muncuk error. mungkin krna formnya tidak masuk dlm Form auto create y mas..

  7. Mas pas saya compile ada error yang pesannya :

    [Error] unConvert.pas(122): Incompatible types: ‘TBlobField’ and ‘TADOQuery’
    [Fatal Error] prjConvert.dpr(5): Could not compile used unit ‘unConvert.pas’

    Isi koding dari Unit saya :

    Tolong di reply ya mas, terima kasih

    1. Trimakasih sudah berkunjung om Rifki, berdasarkan kodenya sudah betul 90%, tapi ada yang kurang yaitu pada bagian type ADOQuery1gambar: TADOQuery; seharusnya ADOQuery1gambar: TBlobField; saya sarankan untuk melihat struktur databasenya di sini seperti yang sudah saya sebutkan di tutorial di atas pada paragrap ke dua.

  8. mas sudah saya ganti dengan TBlobField tp pas di compile tetap jadi TADOQuery dan message nya sama seperti sebelumnya..
    Blob itu sebenarnya apa ya mas? apa fitur itu ada di delphi 7?

  9. mas gimana yah cara bikin form client untuk koneksi ke database mysql di komputer server sebagai form konfigurasi dan menggenerate file config yang nantinya dipakai terus-menerus sebagai file acuan untuk mengkomunikasikan aplikasi client dengan database di komputer server?

    1. Menurut saya jangan menggunakan file config, tapi langsung simpan ke registry Windows dalam bentuk ODBC. Jadi dari form client yang mengatur koneksi simpannya ke registry. Saya pernah buat tetapi untuk bahasa pemrograman Visual Basic 6.0 bukan delphi.

  10. maksud saya misalkan kita sudah membuat aplikasi sim rsud yg sudah di instal di beberapa komputer, kemudian pada saat aplikasi tersebut di run muncul form koneksi ke server dan database kemudian secara otomatis ketika sudah konek akan terbentuk file txt yg dijadikan file rujukan untuk koneksi ke server

  11. mas mau tanyak klo pakek DBImage, mirip sama punya masnya klo nama di DBGridnya di klik yg lain maka gambarnya yg Di DBImage jg brubah?
    maklum baru belajar delphi mas…
    makasih…

  12. salam kenal mas, sebelumnya saya ucapkan terimakasih atas tutorialnya.
    tapi saya ada kendala ni,
    untuk dbgrid nya, saat di klik untuk teks yang lain ikut berubah, tapi gambar yang muncul sama, sepertinya gambar untuk record yang pertama.
    kira2 itu apanya ya mas…??
    Terimakasih sebelumnya..

    1. Terimakasih sudah mau berkunjung dan memberi komentar mas, saya melihat kendala yang mas dapatkan itu termasuk jarang alias langka hehe :), pertama coba mas pastikan sudah mengikuti semua langkah satu persatu seperti yang saya jelaskan di atas, kedua pastikan juga gambar yang di input merupakan gambar yang berbeda, yang ketiga jika mas sudah mengikuti langkah sebelumnya dan masih terjadi hal yang sama coba mas teliti lagi pada langkah yang pertama tadi pada bagian even DbGrid di klik, apakah sudah sama dengan yang ada pada contoh kode di atas?. Jika semuanya sudah mas coba dan ternyata tidak bisa, silahkan mas kontak saya dengan cara berkomentar kembali pada tutorial ini.

      Begitu mas, semoga membantu dan happy coding πŸ˜‰

  13. Mas, punya saya waktu di compile error di baris yg saya kasih tanda seperti ini {…….}
    Mohon mas liat program yg saya tulis apakah emang ada yg salah ato gimana?
    Mohon bantuannya ya Mas…

    1. Terimakasih untuk mbak Febri Nur yang sudah mau berkomentar pada tutorial ini,
      Yup saya sudah meneliti dengan seksama dari barisan kode yang mbak tulis di atas, namun saya menemui bahwa ternyata mbak hanya tidak teliti dalam penyusunannya saja, seharusnya procedure TForm1.tampildata(); diletakan di bawah implementation bukan seperti yang mbak tulis di atas. Coba baca dengan teliti lagi mbak seperti tutorial yang sudah saya tulis.

      Begitu mbak, semoga jawaban saya membantu. Terimakasih πŸ™‚

        1. (:p0, :p1) adalah parameternya, di sini kebetulan saya menggunakan ADOQuery, klo di mydac juga ada adoQuerynya klo gak salah.

          1. masalahnya sih kalau pakai ado gak biasa saya jadi ngrubah koding semua ntar..
            error nya cuma pas di parameter aja tuh..
            di mydac ada nya parambyname

          2. Saya sudah mencoba dan sukses, coba dengan kode ini:

          3. wah makasi banget nih sudah work nih,,
            bisa di pajang di pejwan gan..
            soalnya belum ada di blog lain tuh

  14. maaf tanya lagi nih πŸ˜€
    apa di field nama pasti ke isi BMz6( ya ? bukan isinya edit1..
    pas oncell click error read stream tu knp ya ?

    1. Yup betul sekali, klo menggunakan kode yang di tutorial di atas pasti error soalnya berbeda database. Saya sudah nyobanya tadi gan, oleh karena itu perlu modifikasi sedikit seperti ini :

      Semoga membantu πŸ™‚

  15. waduh tanya lagi nih :Peace:
    pas saya pasang di project saya pasang bmp langsung error pas convert tapi kalau buat cuma simpan gambar saja bisa..
    kira2 knp ya ?

      1. kalau di buat project baru masukin bmp,png lancar masuk..
        kalau di tambahkan ke project yg sudah ada error..
        juma jpg yg bisa masuk

        1. Sepertinya ada komponennya yang bermasalah mas, dri kodenya sya lihat kayaknya baik2 aja. Coba simpan file dengan ukuran gambar kecil aja misal kecil dari 15kb bisa gak? coba untuk semua jenis gambar.

          1. tetep aja gan ..
            aneh nih tapi gk papa deh sy akalin pakai project yg bisa smua πŸ˜€

            kalau simpan gambar ke folder yg kita buat bsa gk tuh ?

          2. Bisa, tapikan jadi panjang kodenya.

            atau begini jga bisa biar sekalian simpan sekalian upload, klo gak ada gmbr gak jadi nyimpan atau upload :

            Langsung komen di thread http://catatanbelajar.com/2012/11/alternatif-menyimpan-gambar-dengan-delphi-7/ aja gan biar percakapan sesi baru dan gak nyampur sama yang thread ini.

  16. mas saya sudah pakai listing yang mas posting,namun ada sedikit kendala, ada erornya : ‘LIST INDEX OUT OF BOUNDS(8)’
    berikut listing yang saya gunakan.

    parameters[8] saya pakai karena field untuk foto ada diurutan 8, itu yang bikin saya bingung mas πŸ™
    tolong pencerahannya.
    terima kasih

  17. mas saya sudah pake listing yang mas posting, untuk memisah antara listing tombol load dan simpan data. nah terus terjadi eror ketika akan ditekan tombol simpan.
    eror : ‘LIST INDEX OUT OF BOUNDS (2)’

    Berikut Listingnya mas :

    mohon pencerahannya πŸ˜€
    terima kasih

    1. Saya jawab sekaligus untuk pertanyaan mas yang di atas ya.

      Permasalahannya bukan pada program yang saya buat, tapi pada koding yang mas punya itu untuk penggunaan parameter dalam insert/update. Dicontoh saya gunakan cuma 2 parameter :p0, :p1.

      Untuk permasalahan yang mas punya saya ilustrasikan seperti ini:

      Seharusnya menjadi seperti ini mas:

      Semoga membantu πŸ˜‰

      1. ia bang saya sudah ganti apa yang abang posting diatas, tapi masih ada erornya bang ‘THE FIELD IS TOO SMALL TO ACCEPT THE AMOUNTOF DATA YOU ATTEMPTED TO ADD’

        berikut listing full yang saya posting bang, mohon dibantu untuk memecahkan maslah saya πŸ˜€

        bang boleh minta listingnya abang yang di posting supaya saya bisa membedakan secara langsung listing saya dgn listingnya abang, kalau bisa kirim di email saya bang yah:)
        semoga berkenan πŸ˜€
        terima kasih sebelumnya

        1. Sekali lagi permasalahannya bukan pada program yang saya buat hehehe…. :D, Kalau pesan errornya ‘THE FIELD IS TOO SMALL TO ACCEPT THE AMOUNT OF DATA YOU ATTEMPTED TO ADD’ dan databasenya MS. Access itu artinya datanya lebih besar dari yang bisa ditampung dri databasenya atau misalnya begini type datanya string(10) mas kasi data lebih dari 10.

          Kalau saya lihat kodenya mas itu pake data modul ya? Nah program yang saya buat ini gak pake data modul mas, karena saya masih belum bisa buat konfigurasinya untuk yang menyimpan gambar.

          Saya sarankan khusus untuk yang menyimpan gambar(tabel yang ada gambar) jangan pake Data Modul tapi terapkan seperti yang saya bahas di tutorial di atas, ikuti langkah perlangkah pasti berhasil kok buktinya dah banyak yang nyoba dan sukses.

          Semoga membantu. πŸ™‚

          1. ia bang permasalahannya ada pada program saya πŸ˜€
            hehehehe
            ia bang saya pake data modul, jadi ADOQuerynya di pindah ke formnya yah.?
            okedeh bang makasih sarannya πŸ˜€

  18. bang saya sudah mengikuti saran yang sudah abang berikan tapi masih eror, erornya tetap sama β€˜THE FIELD IS TOO SMALL TO ACCEPT THE AMOUNT OF DATA YOU ATTEMPTED TO ADD’. ketika eror delphi langsung mengarah ke listing pada baris ke-197 tampildata(); dengan garis biru. kira2 apa lagi yang harus diperbaiki lagi.??

    saya sudah ikuti tutor yang abang posting, mohon bantuaanya πŸ˜€
    terima kasih

    1. Error THE FIELD IS TOO SMALL TO ACCEPT THE AMOUNT OF DATA YOU ATTEMPTED TO ADD itu dari data yang mas bro tambahin bukan error dari kode yang menyimpan gambar, coba buka databasenya => kemudian buka tabel yang menyimpan gambar => klik Design View. Nah coba lihat type data masing-masing field. Perkiraan saya pada field Keterangan. Begini aja untuk menguji coba isi datanya seperti ini: ID_Barang=91,Nama_Barang=1,Jenis=ComboBox1.Text,Status=ComboBox2.Text,Umur_Barang=1,Stok=1,Harga=1,Keterangan=1. Setidaknya error yang disebutkan tidak muncul.

      Semoga membantu πŸ˜‰

  19. bang, klo pke database ms sql server codingnya gmn? saya dah coba berbagai sumber sama yg pny mas ini tp masih eror,,help please.. πŸ™

  20. maaf mas ,,sya pke D2007, DB MS SQL server 2005,
    yg mau saya kasih foto/gambar db karyawan yg fieldnya : nama,tgl,alamat,status,shift

    ni coding delphi untuk tmbol save sya:

    saya mau tmbh field foto di DB nya, codingnya gmn y mas?:(

          1. access violation at address 004215D5 in modul ‘mkar.exe ‘
            read of address 0FD88B6B

            ni kenapa ya mas?

  21. mas,punya saya sudah bisa tampil gambarnya,tapi ketika Data di klik misal: ‘A’ yg tdk ada gambarnya ,muncul gambar data si ‘B’
    yg ada gambarnya,
    biar waktu klik data yg tdk ada gambarnya trus di Timage nya gambarnya kosong gmn y?

    1. Coba begini:

      Yang sebelumnya apa masalahnya? kok sekarang udah bisa tampilkan gambar?

      1. ok mas dah bisa..

        iya tadi yg bagian ini Stream := TADOBlobStream.Create(ADOQuery1gambar,bmRead);

        adoquerynya saya ganti pake

        Stream := TADOBlobStream.Create(ADOStoredProc1foto,bmRead);

        soalnya saya kan pake stored procedure di sql

        makasih ya mas,blog nya sangat menginspirasi πŸ˜€

  22. mas saya masih dapat kendala, erornya kayak gini : “Data Type Mismatch in criteria expression” itu kira2 apa lagi yah.?

    saya mau tanya mas kalau di tampil data :
    procedure TForm1.tampildata();
    begin
    ADOQuery1.Close;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.text := ‘select * from tb_foto’;
    ADOQuery1.Active:=true;
    DBGrid1CellClick(DBGrid1.Columns[0]);
    end;

    itu Columns [0]nya itu memang nol atau mengikuti field pada columns foto databasenya mas.?
    dan untuk type field foto pada databasenya itu OleObject atau text.? karena saya lihat di tutor yang satunya fieldnya “TEXT”.
    makasih mas mohon bantuannya πŸ˜€

  23. mas saya masih dapat eror “Data type mismatch in criteria expression”
    kira2 apa yah.?

    trus pada procedure tampil data
    procedure TForm1.tampildata();
    begin
    ADOQuery1.Close;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.text := ‘select * from tb_foto’;
    ADOQuery1.Active:=true;
    DBGrid1CellClick(DBGrid1.Columns[0]);
    end;

    pada (DBGrid1.Columns[0]); itu columnsnya[0] mengikuti field foto columnsnya atau tetap o.?

    trus saya mau tanya lagi pada type field foto pada databasenya itu OleObject atau text.? karena saya lihat tutor yang satu fieldnya text.
    terima kasih, mohon bantuannya πŸ˜€

    1. DBGrid1.Columns[0] itu artinya kolom dengan index=0 atau kolom pertama, bukan mengikuti fieldnya.

      Iya OleObject karena fotonya di simpan ke database di tabel, klo tutor yg satunya memang text karena yang disimpan hanya nama gambarnya bukan gambarnya

      1. makasih mas sekarang saya sudah dapat menyimpan gambarnya, πŸ˜€
        sekarang yang saya mau tanya untuk edit datanya listingnya seperti apa mas.???
        apakah tinggal ganti listing sqlnya dari insert ke update.?? atau ada perubahan listing lainnya πŸ˜€
        terima kasih mohon bantuannya mas

  24. mas sori nih ikut nimbrung. saya mau tanya. saya buat program mau simpan grafik (foto) ke database paradox. saya pakai delphi 7 tapi kok yg grafiknya ga masuk ke tabel.

    Ini sourcenya:
    procedure simpan;
    begin
    with DM.Tbarang do
    with Finputbarang do
    begin
    fieldbyname (‘kode’).AsString:=edkode.Text;
    fieldbyname (‘nama_barang’).AsString:=ednama.Text;
    fieldbyname (‘kategori’).AsString:=cbkategori.Text;
    fieldbyname (‘harga’).AsString:=edharga.Text;
    fieldbyname (‘satuan’).AsString:=cbsatuan.Text;
    FieldByName(‘foto’).Assign(DBImage1.Picture);
    post;
    refresh;
    DM.Tbarang.Active:=false;
    DM.Tbarang.Active:=true;
    end;
    end;

    yg saya tanyakan kok yg tipe string masuk semua (kode, nama barang, kategori, dll) tapi kok yg grafik ga masuk ke tabel ya? apa salah di perintahnya? mohon bantuannya ya mas….

    1. Saya kurang paham juga ya untuk database paradox, khusus buat tutorial saya ini tidak menggunakan DM(Data Module) sedangkan maskan pke DM, jadi alangkah baiknya mas ikutin tutorialnya dari awal dengan membuat form percobaan untuk database paradox.

  25. mas pngn nanya, sya msih newbi, jdi krang mngrti. maksd dri “(:p0, :p1);” itu apa?
    sya remake lgi app mas d ats (g pke dbgrid+d database nya sya cman bikin table yg isinya cman ad field Gambar).
    mohon bantuanya.

  26. Mas Ivo, luar biasa akhirnya saya dapat referensi yang sesuai setelah obrak-abrik google. πŸ˜€

    Saya pake db Firebird + UIB. Tapi macet di parameter untuk insert blob pic-nya. Ini dia codenya:

    with UIBQuery1 do
    try
    SQL.Clear;
    SQL.Add(‘INSERT INTO EMPLOYEE’);
    SQL.Add(‘(ID, NAME, PIC)’);
    SQL.Add(‘VALUES’);
    SQL.Add(‘(:ID, :NAME, :PIC)’);
    params.AsInteger[0] := StrToInt(edtID.Text);
    params.AsString[1] := edtName.Text;
    // How to give a param for blob here?
    Execute;
    Transaction.Commit;
    bsSkinMessage1.MessageDlg2(‘Has been saved.’,’New Record’,mtInformation,[mbok],0);
    except
    Transaction.RollBack;
    raise;
    end;

    Gimana ya mas? Saya bingung sampai sakit kepala mikirin ini, soalnya setelah parameter ga ada member lagi utk dimasukkin valuenya. Saya tanya ke forum di luar negeri pun belum ada yg tau. Help me mas ivo.

    1. Pertama, pastikan databasenya support type data blob. Kemudian mas ikutin langkah-langkah seperti tutorial yang saya tulis di atas.
      Kalau bisa mas ubah querynya seperti ini:
      UIBQuery1.Close;
      UIBQuery1.SQL.Clear;
      UIBQuery1.SQL.Text := ‘INSERT INTO EMPLOYEE (id,name,foto) values (:p0, :p1, :p2)’;
      UIBQuery1.Parameters[0].Value := StrToInt(edtID.Text);
      UIBQuery1.Parameters[1].Value := edtName.Text;
      UIBQuery1.Parameters[2].LoadFromStream(gambar,ftBlob);
      UIBQuery1.ExecSQL;

      1. Terima kasih banyak Mas Ivo atas responnya.

        Khusus untuk UIBQuery parameternya tidak bisa dibuat seperti ini mas: “UIBQuery1.Parameters[0].Value” sebab syntax yang diterima hanya “Params” saja. Alternatifnya: “UIBQuery1.Params.ByNameAsString[‘p0’] := StrToInt(edtID.Text);” selain yang saya tuliskan di atas. Dan, setelah Params tidak ada lagi membernya, termasuk LoadFromStream, dsb. Ini yang bikin saya stucked berat.

        Saya coba jadi seperti ini: TBLOBField(Params.ByNameAsString[‘PIC’]).LoadFromStream(gambar); bisa running tapi saat dieksekusi ACCESS VIOLATION. Duh, saya benarΒ² nyerah ga punya clue lagi… πŸ™

        Help me please, Mas Ivo..

        1. UIBQuery itu komponen apa?

          Kalau komponen dari mydac seperti ini:
          MyQuery1.Close;
          MyQuery1.SQL.Clear;
          MyQuery1.SQL.Text := ‘insert into tb_foto (nama,gambar) values (:p0, :p1)’;
          MyQuery1.Params[0].Value := Edit1.text;
          MyQuery1.Params[1].LoadFromStream(gambar,ftBlob);
          MyQuery1.ExecSQL;

          1. UIB = Unified Interbase, mas. Websitenya: http://sourceforge.net/projects/uib/

            Cuma entah kenapa sayangnya uncontinued padahal bagus en lumayan stabil. Situs pembuatnya http://www.progdigy.com

            Kalau mas Ivo berkenan, mungkin bisa coba download dan mencoba. Tapi kalau mas Ivo sibuk gpp kok mas, mungkin saya harus pakai cara alternatif aja selain pakai blob atau kemungkinan terburuk ganti komponen, wah wes kadung setengah jalan je. Hik… hik… ;(

  27. om,makasih banyak niih share sangat membantu skali ..tambah smngat niih ngodingnya πŸ˜€

    skedar share untuk temen” yg kesulitan untuk menympan gambar kapasistas besar dengan MYSQL,
    kita kasih perintah sql=’set global max_allowed_packet=10000000000′
    bisa diatur brapa kapasitas foto yg bsa kita simpan ke Mysql ..

    cm ada satu masalah niih om,,saya udah bisa simpan gambar ,cm ketika ada sudah tersimpan..saya run project lagi ada
    “error Jpeg #53”

    btuh pncerahan niih,,trima kasih πŸ™‚

  28. …..
    GambarBmp := TBitmap.Create;
    Stream := TADOBlobStream.Create(ADOQuery1gambar,bmRead);
    disini saya error mulu
    akhirnya nyoba
    …..

    …..
    GambarBmp := TBitmap.Create;
    Stream := TADOBlobStream.Create(adoquerymaster.fieldbyname(‘foto’)as TBlobField,bmRead);
    …..

    sudah bisa
    makasi ilmu nya yang di share bung Ivo πŸ™‚

      1. Alhamdulillah sudah menemukan .. mas, saya menggunakan Revo, komponen yang digunakannya menggunakan Bitmap Componen terus setting DataView dan DataField nya ..

        1. Saya dulu pernah pake seagate crystal report klo gak salah, masalahnya udah lama juga jadi lupa. Sekarang saya enggak fokus ke pemrograman desktop tetapi ke pemrograman website. Makanya saya buat tutorial ini simpan gambarnya format bmp(bitmap) supaya bisa tampil dalam report.

  29. permisi pak idam…sy mau nanya nih…sy kan buat program yg menggunakan fitur memo nih…saat sy coba buat gabungin program sy dengan fitur quickreport, record memo yang ada di database tu ngk muncul normal…sebagai contoh sy punya 3 record di database setelah sy tekan tombol print yang muncul di quickreport tuh malah memo yg di record pertama…dan terus menerus sampai ke record ke 3…tp sy heranx cuma field memox aja yg kyk gitu kalau field lain munculx normal mulai dari record 1 sampai ke 3…mohon pencerahanx mas

    1. Mungkin tipe datanya gak didukung oleh quickreport kali pak. Itu cuma kemungkinannya aja ya pak berdasarkan penjelasan yang bapak sampaikan. Untuk lebih detailnya tidak bisa diketahui kalau tidak langsung periksa programnya.

  30. pak kok program delphi yg sy buat gk mau running…[Fatal Error] Could not create output file ‘D:DocumentPraktikum Basis DataSoftware Log Book Project1.exe’

    1. Itu pake window 7 kyknya ya?

      Langkah-langkah berikut ini adalah cara mengatasinya.
      1. Kita tutup dulu semua jendela program Delphi 7;
      2. Lalu buka deh tuh folder C:Program FilesBorlandDelphi7Bin
      3. Cari file application yang bernama delphi32 (biasanya berukuran 533 kB)
      4. Klik kanan pada file tersebut, pilih Properties, buka tab Compatibility dan beri tanda centang (√) pada kotak Run this program as an administrator, kemudian klik OK

  31. Terima Kasih Banyak atas Tutorialnya Mas. Bener2x membantu banget Buat TA saya.

    Semoga Tambah Maju jaya untuk kita semua.

  32. saya tertarik pada halaman ini… sangat membantu para Newbe Delphi…
    kbetulan saya jg punya masalah saat save data mas.
    saya pake SQLServer2005 dan delphi7…
    komponen yg dipakai menggunakan ADO…

    ni source code yg saya pakai:

    klo saya coba pake komponen BDE berhasil mas…
    jadi kesimpulan saya: error bukan karena format tanggal yg berbeda

    Mohon bantuannya mas….

    1. Terimakasih sudah berkomentar pada tulisan ini mas/mbak.
      Saya lihat apa yang mas/mbak tanyakan kok tidak berkait dengan tulisan ini yaitu tentang menyimpan gambar. Tetapi walaupun demikian saya akan tetap mencoba menjawab pertanyaan mas/mbak.

      Saya melihat ada beberapa keganjilan dari kode punya mas/mbak ini, misalnya kode S := ‘insert into tTest values(:p0)’; seharusnya ditulis fieldnya juga seperti S := ‘insert into tTest (field_tanggal) values(:p0)’;, kemudian klo sampean ikutin format penulisan kode saya tidak ada SQL.Add(S);nya sama sekali. Jadi sebaiknya begini saja kode sampean:

      Maaf ya kalau jawaban saya tidak mengena, soalnya sampaean juga tidak menyertakan pesan errornya πŸ™‚
      Happy coding

      1. hahaha… maaf mas, klo tiba2 nyleweng ksini (ttg gambar).

        oya, (field_tanggal) yg sampean maksud itu cuma opsi mas, jd klo langsung ke VALUES itu urutan dan jumlah field-nya harus sama dengan struktur tabelnya. misalnya:
        struktur tabel:
        A char(10)
        B int
        C datetime
        klo cuma mo nyimpan A dan B saja maka codingnya ‘insert into Table1 (A,B) values(:p0,:p1)’
        tp, klo semua field-nya langsung aja: ‘insert into Table1 Values(:p0,:p1,:p2)’

        trus, baris yg sampean matikan itu:
        //ADOTable1.Close;
        //ADOTable1.Open;
        maksudnya cuma mo refresh komponen aja koq..

        ni mess errornya mas:
        … with message: ‘[Microsoft][ODBC SQL Server Driver]Optional feature not implemented…

        1. Solusinya ganti datatype menjadi datetime untuk field di tabel sehingga DateTimePicker1.DateTime bisa masuk. Atau ganti dengan tipe data date juga bisa, tapi yang diinsert DateTimePicker1.Date bukan DateTimePicker1.DateTime

          Semoga membantu.
          Oh ya silahkan dicoba dulu karena saya sendiri belum mencoba.
          Happy coding.

      2. ya memang sprtnya demikian mas, tp struktur table (yg saya coba) adalah

        Tanggal = Datetime

        makanya pas saya coba pake komponen BDE berhasil, soalnya coding sprt ini:

        procedure TForm1.Button1Click(Sender: TObject);
        var S : string;
        begin
        S := ‘insert into tTest values(:p0)’;
        with Query1 do
        begin
        Close; SQL.Clear; SQL.Add(S);
        ParamByName(‘p0’).AsDateTime :=DateTimePicker1.DateTime;
        ExecSQL;
        end;
        Table1.Close;
        Table1.Open;
        end;

        agak sulit saya beradaptasi pake ADO, cuma dia punya properties untuk mematikan login database, sedangkan BDE (yg saya tau) gak ada, makanya coba migrasi ke ADO

        1. Oke mas.
          Mungkin mas bisa coba kembali begini

          Catatan: saya belum tes kodenya.

  33. mas, mo tanya nih.. gimana source code untuk membuat peringatan seperti ini “no member ini masih aktif dan tidak bisa disimpan”. ketika klik pencarian no_member. atau pada saat klik simpan.

    1. Ketika klik simpan aja, jadi kodenya harus melakukan pencarian ke database dulu kalau no member itu aktif atau tidak, jika masih aktif keluarkan peringatannya dan jangan disimpan.

  34. Assalamualaikum, terima kasih Mas share Ilmunya, mau tanya, bagaimana cara gambar yg disimpan lebih dari 1 record, saya da buat aplikasi Delphi, dgn koneksi database Access.. dalam form delphinya saya buat dgn TEdit1 untuk tampilkan path (alamat folder t4 simpan gambar) dan file gambarnya saya buat folder sendiri untuk simpannya?

  35. asslm..
    mas bagaimana untk mengatasi..
    [error] pm.pas(44): Statement expected but ‘PROCEDURE’ found
    [Fatal Error] PAby,dpr(10):Could not compile used unit ‘pm.pas’

    1. Kemungkinan penyebab untuk hal ini mencakup dideklarasikan atau salah menyatakan variabel.
      Coba cek kode programnya, misal begin harus diakhiri dengan end, atau terlalu banyak begin atau end.

    1. Kode di atas tidak mengubah file gambar menjadi simpanan file gambar yang lain, sehingga tidak ada kaitannya sama sekali dengan ektensi tetapi kode di atas mengubah format gambar dari yang bukan bmp menjadi format bmp yang kemudian disimpan ke database.

      Jika yang mas maksud adalah ingin mengubah menjadi format png mungkin mas bisa coba kode berikut:

      Untuk menampilkannya, misal saat DbGrid di klik ubah kode yang ada di atas menjadi:

      CATATAN: Saya belum coba lho kodenya, sehingga masih mungkin ada kesalahan. Tetapi kira-kira kodenya seperti itu.

  36. klu file gambar yang udah si simpan ke database, qt mau ambil kembali dan di simpan ke direktory, seperti mendownload gmna mas..???

  37. maaf mas menggangu saya sudah coba coding diatas tapi kok tidak bisa menyimpan gambarnya dan tdak bisa menampilkan ketika gambar ketika saya mengklik data di data grid view….?

    eror muncul ketika disimpan (project ptest.exe raised exception class eoleexception with message ‘arguments are of the wrong type are out of acceptable range, or are conflict with one another’. process stopped. use step or run to continue)

    kemudian saya menggunakan appserv mysql versi 5.0.51a….

    tolong bantuannya…

  38. maaf mas, ini saya butuh pencerahanya …
    saya salah pada bagian dbgrid1dblclick, “Stream := TADOBlobStream.Create(ADOQuery1gambar,bmRead);”,
    dan ini errornya “[Error] UData_Penyewa.pas(222): Undeclared identifier: ‘ADOQuery1gambar'”…

    NOTE : Saya mengganti events oncellclick dengan ondblclick… saya bingung karena dibagian penjelasan properti dbgridnya gambarnya ga ada..
    fast respon please πŸ™

Tinggalkan Balasan