Author
Message
Post subject: dari pake query mo dijadi pake ADOQuery qo error y
Posted: 21-01-2008 15:16
onSkilled
Joined: 14-08-2007 19:21
Posts: 81
saya dapat dari buku tentang report buat pertanggal
nih sourecodenya
procedure TfrmCetakJualPerBarang.btPreviewClick ( Sender: TObject) ;
var PTgAwal, PTgAkhir : TDateTime;
begin
//jika tanggal kosong, anggap dari awal sampai akhir
if length( edTgAwal.Text ) =0 then edTgAwal.Text :='01-01-1900' ;
if length( edTgAkhir.Text ) =0 then edTgAkhir.Text :='01-01-2999' ;
//cek input tanggal
try
begin
PTgAwal:=StrToDate( edTgAwal.Text ) ;
PTgAkhir:=StrToDate( edTgAkhir.Text ) ;
end ;
except
beep;
ShowMessage( 'Input data tanggal tidak sah!' +chr ( 13 ) +
'Format tanggal: dd-mm-yyyy' ) ;
exit;
end ;
with uLembarcetakJualPerBarang.lbrCetakJualPerBarang do
begin
//hapus string SQL lama jika ada
quJual.SQL .Clear ;
//buat string SQL baru
quJual.SQL .Add ( 'select * from ' +QuotedStr( 'Jual.DB' ) ) ;
//jika edKodeBrg kosong, anggap semua barang
if length( trim( edKodeBrg.Text ) ) =0 then
edKodeBrg.Text :='%' ;
quJual.SQL .Add ( 'where KodeBrg Like :PKodeBrg' ) ;
quJual.SQL .Add ( 'and TgBon>=:PTgAwal' ) ;
quJual.SQL .Add ( 'and TgBon<=:PTgAkhir' ) ;
//set parameter
quJual.ParamByName ( 'PKodeBrg' ) .AsString :=edKodeBrg.Text ;
quJual.ParamByName ( 'PTgAwal' ) .AsDate :=
StrToDate( edTgAwal.Text ) ;
quJual.ParamByName ( 'PTgAkhir' ) .AsDate :=
StrToDate( edTgAkhir.Text ) ;
//siapkan query
quJual.Prepare ;
//buka SQL
quJual.Open ;
//isi variabel dalam bandTitle
if length( trim( edKodeBrg.Text ) ) =0 then
edKodeBrg.Text :='%' ;
//isi variabel dalam bandTitle
if edKodeBrg.Text ='%' then
begin
qrKodeBrg.Caption :='Semua Barang' ;
qrNamaBrg.Caption :='' ;
end
else
begin
qrKodeBrg.Caption :=edKodeBrg.Text ;
qrNamaBrg.Caption :=edNama.Text ;
end ;
qrPeriode.Caption :=edTgAwal.Text +' s/d ' +edTgAkhir.Text ;
if Sender=btPreview then
//jika event OnClick berasal dari btPreview
qrCetakJualPerBarang.Preview
else
//jika event OnClick berasal dari btCetak
qrCetakJualPerBarang.Print ;
end ;
tapi pas saya mo rubah query menjadi adoquery qo ada yang error ya??
soucre pake adoquery
procedure TFormAbsenkelas.previewklstglClick ( Sender: TObject) ;
var PTgAwal, PTgAkhir : TDateTime;
begin
//jika tanggal kosong, anggap dari awal sampai akhir
if length( TglAwal.Text ) =0 then
TglAwal.Text :='01-01-1900' ;
if length( TglAkhir.Text ) =0 then
TglAkhir.Text :='01-01-2999' ;
//cek input tanggal
try
begin
PTgAwal := StrToDate( TglAwal.Text ) ;
PTgAkhir := StrToDate( TglAkhir.Text ) ;
end ;
except
beep;
ShowMessage( 'Input data tanggal tidak sah!' +chr ( 13 ) +
'Format tanggal: dd-mm-yyyy' ) ;
exit;
end ;
with Uabsenkelasperbulan.AbsenkelasPerbulan do
begin
//hapus string SQL lama jika ada
ADOQabsen.SQL .Clear ;
//buat string SQL baru
ADOQabsen.SQL .Add ( 'select * from absen' ) ;//'+QuotedStr('Jual.DB'));
ADOQabsen.SQL .Add ( 'where Tgl_absen>=:PTgAwal' ) ;
ADOQabsen.SQL .Add ( 'and Tgl_absen<=:PTgAkhir' ) ;
//set parameter
ADOQabsen.Parameters .ParamByName ( 'PTgAwal' ) .AsDate :=//errornya AsDate
StrToDate( tglkelasawal.Text ) ;
ADOQabsen.Parameters .ParamByName ( 'PTgAkhir' ) .AsDate :=//errornya AsDa
StrToDate( tglkelasakhir.Text ) ;
//siapkan query
ADOQabsen.Prepared ;
//buka SQL
ADoQabsen.Open ;
//isi variabel dalam bandTitle
qrPeriode.Caption :=TglAwal.Text +' s/d ' +TglAkhir.Text ;
qrkelas.Caption := '' ;
end ;
end ;
errornya
undeclared identifier 'AsDate'
kenapa y?? ada yang tau g kenapa??
___________________________________________________________________
=====================================
/\ - I wanna change my life to becoming programmer - /\
in order to change other perception about being betawiness
=====================================
__________________________________________________
Post subject:
Posted: 21-01-2008 15:25
onMage
Joined: 04-07-2005 10:44
Posts: 2097
Post subject:
Posted: 21-01-2008 15:25
onProfessional
Joined: 06-08-2005 13:59
Posts: 632
Dari DivcallSDK sampe nanya Query...wah jadi menurun dunkz...tingkat kesulitannya @fafa,,,payah neh..
Dirubah Jadi AsDateTime
with AdoQuery1 do
Begin
Close;
SQL.Clear ;
SQL.Text := 'Select * From t_absen where Tgl_absen BETWEEN :x_tglawal AND :x_tglAkhir
// Isikan Parameternya ingat Pake AsDateTime'
end ;
_________________ == Barudak Jambi ===
Site : http://geocities.com/nahax_san/
Company : http://www.vs-i.com/
===Kenangan yang tertinggal===
========cibodas==========
Post subject:
Posted: 21-01-2008 15:53
onSkilled
Joined: 14-08-2007 19:21
Posts: 81
hehehe,,bro saysansay,,,,hmm tau nih Diva lagi dikerjakan belom ditest pake pstn,,soalnya masih binggun ada 4 port kabel telepon dya mo dimasukin port mana y?mesti di pantek pake program atau bisa lngsung dicoba...,,!!!oiya bro maap belom sempat main kerumah,,ntar deh saya main y,,,,tapi rame2 g pa2 ya??
___________________________________________________________________
=====================================
/\ - I wanna change my life to becoming programmer - /\
in order to change other perception about being betawiness
=====================================
__________________________________________________
EkoIndri
Post subject:
Posted: 22-01-2008 00:20
onElite
Joined: 23-11-2005 19:14
Posts: 1185
Location: Jakarta - Solo - Surabaya - Bali
Status: Offline
sekedar informasi tambahan buat mas fafa
sebenarnya biar sedikit agak lebih stabil, kalau memang ADOQuery-nya hanya untuk melakukan satu perintah aja lebih baik penulisan query di propertinya langsung
jadi ketika parameter digenerate, maka parameternya langsung bisa menunjukkan itu sebagai DateTime tanpa harus menegaskannya didalam kode program.
tanda ":" menunjukkan sebagai paramter ( kalau belum tahu. he....3x )
kalau di database MS SQL Server tanda ":" sama dengan "@", yang keduanya sama sama menunjukkan sebagai parameter
semoga info diatas bisa bermanfaat.
_________________ Blog Delphi favourite:
www.ekoindri.wordpress.com