Arsip: INSERT gak mau nge refresh?

 
user image
more 15 years ago

kupretkutu

numpang tanya.. aku pake database ms access, koneksinya seperti ini : ADOConnection <- ADOQuery <- DataSource <- DBGrid yang mo ditanya.. kenapa setiap kali aku masukin data / lakukan perubahan data pada database dengan menggunakan SQL syntax, misalnya :

ADOQuery.SQL.Text := 'INSERT INTO ... ';
si DBGrid gak mo nge refresh alias ndak mau nampilin data yang baru di INSERT ato di UPDATE... walopun aku udah pake ADOQuery.Refresh, ADOConnection.Refresh, n DBGrid.Refresh... apakah cara masukin/edit data harus selalu dengan :

ADOQuery.Edit;
ADOQuery.FieldValues['aaa'] := 'aaa';
ADOQuery.Post;
...?? trims atas pencerahannya....
user image
more 15 years ago

R-One

sebelumnya diaktifin dulu. adoquery.active:=true; atau adoquery.open;
user image
more 15 years ago

b3g1n312

mudah2 an bisa ngebantu : var : cmd := 'insert (bla bla bla).....'; begin adoquery.close; adoquery.sql.clear; adoquery.sql.add(cmd); adoquery.sql.open; end; ato bisa begini : var : cmd := 'insert (bla bla bla).....'; begin adoquery.close; adoconnection.execute(cmd); adoquery.open; end;
user image
more 15 years ago

_lmz

Itu terjadi karena ADOQuery (yang terhubung ke DBGrid) menyimpan data hasil query di sisi client. Ini bagus karena memungkinkan scrolling, menampilkan banyak record di grid dlsb tapi jelas bahwa perubahan di server tidak akan terlihat sampai anda melakukan query ulang misal dengan close lalu open lagi.
user image
more 15 years ago

kupretkutu

utk informasinya, record nya sih udah masuk ke database, aku pake syntax seperti ini....

sqlcmd := 'INSERT INTO tb_spk(idSpk, tanggal_mulai, tanggal_selesai) '+
                'VALUES (:idSpk, :tanggal_mulai, :tanggal_selesai)';
      with ADOQueryManipulate do
      begin
        Close;
        SQL.Text := sqlcmd;
        Parameters.ParamByName('idSpk').Value := idSPK;
        Parameters.ParamByName('tanggal_mulai').Value := tanggal_mulai;
        Parameters.ParamByName('tanggal_selesai').Value := tanggal_selesai;
        ExecSQL;
      end;
n aku juga udah punya fungsi

procedure TDataMod.RefreshDataset;
begin
  ADOTableMaster.Close;
  ADOTableMaster.Open;
  ADOQueryDetail.Close;
  ADOQueryDetail.Open;
end;
tapi tetep aja gak ngaruh.... aku harus stop program n running lagi, baru deh data barunya nongol... :-(
user image
more 15 years ago

mas_kofa

mungkin / semoga bisa ke-refresh kalo di sql nya di select ulang..... adoquery1.sql.text := 'select * from.................'; adoquery1.open; aku juga pernah ngalamin spt itu..tapi setelah saya tambahkan coding..di atas .......solved prolem............
user image
more 14 years ago

yayaretina

@kupretkutu: apakah cara masukin/edit data harus selalu dengan :

ADOQuery.Edit;
ADOQuery.FieldValues['aaa'] := 'aaa';
ADOQuery.Post;
gak selalu mas : bisa pake perintah update set:

ADOQuery.sql.clear;
ADOQuery.sql.text:='UPDATE namatabel SET '+
      'field1='+QuotedStr(edit1.Text)+','+
      'field2='+QuotedStr(edit2.Text)+','+
      'field3='+QuotedStr(edit3.text)+
      ' WHERE field0='+QuotedStr(edit4.Text);
      ADOQuery.ExecSQL;
user image
more 14 years ago

belajaraja

Salam Kenal, Maaf mas, sebaiknya kalo untuk Untuk Insert atau update jangan pake query tapi lebih baik pake command, ngga pernah ada masalah. malah lebih cocok kalo nanti mau dikembangin buat client/server. Kalo mau pake Query sebaiknya untuk select aja tapi saya lebih memilih dataset daripada query. Semoga membantu
Untuk Insert
var mysql : String; connection.begintrans; mysql := ' Insert into..... command.connection := connection; command.commandtext := 'mysql'; command.execute; connection.comitrans; kalo update tinggal di rubah aja jadi update Semoga bermanfaat
user image
more 14 years ago

belajaraja

oh ya ada tambahannya lupa, biar bisa langsung ke update mas pilih lagi datagridnya; jadi sehabis
connection.begintrans; mysql := ' Insert into..... command.connection := connection; command.commandtext := 'mysql'; command.execute; connection.comitrans;
mas buat lagi dataset.close; mysql := select .....from.... dataset.connection := connection; dataset.commandtext := 'mysql'; dataset.active := True; data.dataset := dataset; grid.datasource := data; Maaf tadi kelupaan... Terima kasih
user image
more 14 years ago

kupretkutu

Iya, dah jalan ko, ternyata emang sqlnya harus di select ulang, trims yah... kalo Command belom pernah ta' cobain, tapi ntar berikutnya aku coba, trims....
more ...
  • Pages:
  • 1
Share to

Random Topic

Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com