--- In [email protected], "M. Aksan Kurdin"
<[EMAIL PROTECTED]> wrote:
Assalamu'alaikum mas aksan...or access mania maaf mengganggu lagi,
mengenai function fnDateEmptyToNull yg dibuat mas aksan bisa gak sih
diterapkan di sisi client ;), soalnya untuk proses update atau
insert kadang2 saya buat koneksi melalui ADO di client, jadi tidak
membuat stored procedure di sisi server, permasalahannya adalah
field yang tanggal bila blm terisi akan terisi default dari access
yaitu 01/01/1900, karena parameter yang dimasukkan adalah null, bisa
gak di 'akalin' dari sisi clientnya. jadi masuknya data kosong
server bisa tahu ini adalah null seperti skenario dari Function ini
lho..
maaf masih belajar syntax nih soalnya lagi proses migrasi dan udah
dikejar2 deadline...please thx b4.
> selama saya ada waktu untuk mbantu, no-pe,
> dari kasus anda gunakan UDF ini di sproc anda penganti fnGetDate:
>
> CREATE FUNCTION fnDateEmptyToNull(
> @DateToGet datetime
> )
> RETURNS varchar(10)
> AS
> BEGIN
> DECLARE @GetDate varchar(10)
> IF ISNULL(@DateToGet,' ') = ' '
> SELECT @GetDate = NULL
> ELSE
> SELECT @GetDate = CONVERT (varchar, @DateToGet, 111)
>
> RETURN @GetDate
> END
>
> Coba jalankan dari SQL Query Analyzer:
> SELECT dbo.fnDateEmptyToNull(GetDate()) TglSekarang,
> dbo.fnDateEmptyToNull(NULL) TglNull, dbo.fnDateEmptyToNull(' ')
> TglKosong
>
>
>
> Aksan Kurdin
>
>
> --- In [email protected], "Heri Sumanto" <heri_juan@>
> wrote:
> >
> > --- In [email protected], "M. Aksan Kurdin"
> > <aksan.kurdin@> wrote:
> > sori mas aksan sebetulnya men set field tanggal ke value null
sudah
> > saya terapkan sebelum saya kirim ke mas aksan, dan berhasil tp
saya
> > pikir banyak sekali codingnya tapi bila function fgetdate itu
> > disertakan diparameter maka hasilnya tetap sama yaitu
01/01/1900,
> jd
> > gimana ya ? maaf loh jadi merepotkan terus....
> >
> > > field tgl_stnk dan field tanggal lain di set allow null
> > > cek semua parameter,kalau kosong ganti dengan null
> > > baru lakukan update/insert dengan parameter yang sudah
diperbaiki.
> > >
> > > IF ISNULL(@Tgl_STNK,' ') = ' ' SET @Tgl_Stnk = NULL
> > > IF ISNULL(@Tgl_BPKB,' ') = ' ' SET @Tgl_BPKB = NULL
> > > IF ISNULL(@tgl_transfer_bbn,' ') = ' ' SET @tgl_transfer_bbn =
> NULL
> > > IF ISNULL(@Ttd_bpkb,' ') = ' ' SET @Ttd_bpkb = NULL
> > > IF ISNULL(@tgl_spp_bbn,' ') = ' ' SET @tgl_spp_bbn = NULL
> > > IF ISNULL(@tgl_terbit_stnk,' ') = ' ' SET @tgl_terbit_stnk =
NULL
> > >
> > > IF @IDP>0
> > > BEGIN
> > >
> > > Update stnk set
> > > No_STNK = @No_STNK,
> > > Tgl_STNK = @Tgl_STNK,
> > > No_BPKB = @No_BPKB,
> > > Tgl_BPKB = @Tgl_BPKB,
> > > tgl_transfer_bbn = @tgl_transfer_bbn,
> > > Ttd_bpkb = @Ttd_bpkb,
> > > No_ttd_BPKB = @No_ttd_BPKB,
> > > tgl_spp_bbn = @tgl_spp_bbn,
> > > bbn = @bbn,
> > > Keterangan = @Keterangan,
> > > tgl_terbit_stnk = @tgl_terbit_stnk,
> > > id_birojasa = @id_birojasa
> > > Where id_pengirim = @id_pengirim
> > >
> > > END
> > > ELSE
> > > begin
> > > --bila stnk belum dinput
> > > insert into stnk (
> > >
> >
>
id_pengirim,No_STNK,Tgl_STNK,No_BPKB,Tgl_BPKB,tgl_transfer_bbn,Ttd_bp
> > k
> > > b,
> > >
> No_ttd_BPKB,tgl_spp_bbn,bbn,Keterangan,tgl_terbit_stnk,id_birojasa,
> > > tgl_created)
> > > values
> > >
> >
>
(@id_pengirim,@No_STNK,@Tgl_STNK,@No_BPKB,@Tgl_BPKB,@tgl_transfer_bbn
> > ,
> > > @Ttd_bpkb,
> > >
> >
>
@No_ttd_BPKB,@tgl_spp_bbn,@bbn,@Keterangan,@tgl_terbit_stnk,@id_biroj
> > a
> > > sa,getdate())
> > > end
> > >
> > >
> > > aksan kurdin
> > > --- In [email protected], "Heri Sumanto"
> <heri_juan@>
> > > wrote:
> > > >
> > > > terima kasih atas jawaban mas aksan, saya sudah coba jawaban
> > yang
> > > > pertama dan sukses tapi untuk jawaban kedua tentang tanggal,
> > > > sepertinya tidak jalan, maksudnya semua data yang diinput
> kosong
> > > > tetap terisi 01/01/1900. Maaf selalu merepotkan..berikut
saya
> > > > sertakan penggalan codingnya, sbb:
> > > >
> > > > IF @IDP>0
> > > > BEGIN
> > > >
> > > > Update stnk set
> > > > No_STNK = @No_STNK,
> > > > Tgl_STNK = dbo.fnGetDate(Tgl_STNK) ,
> > > > No_BPKB = @No_BPKB,
> > > > Tgl_BPKB = dbo.fnGetDate(@Tgl_BPKB),
> > > > tgl_transfer_bbn = dbo.fnGetDate
(@tgl_transfer_bbn),
> > > > Ttd_bpkb = dbo.fnGetDate(@Ttd_bpkb),
> > > > No_ttd_BPKB = @No_ttd_BPKB,
> > > > tgl_spp_bbn = dbo.fnGetDate(@tgl_spp_bbn),
> > > > bbn = @bbn,
> > > > Keterangan = @Keterangan,
> > > > tgl_terbit_stnk = dbo.fnGetDate
(@tgl_terbit_stnk),
> > > > id_birojasa = @id_birojasa
> > > > Where id_pengirim = @id_pengirim
> > > >
> > > > END
> > > > ELSE
> > > > begin
> > > > --bila stnk belum dinput
> > > > insert into stnk (
> > > >
> > >
> >
>
id_pengirim,No_STNK,Tgl_STNK,No_BPKB,Tgl_BPKB,tgl_transfer_bbn,Ttd_bp
> > > >
> > >
> >
>
kb,No_ttd_BPKB,tgl_spp_bbn,bbn,Keterangan,tgl_terbit_stnk,id_birojasa
> > > > ,tgl_created)
> > > > values (@id_pengirim,@No_STNK,dbo.fnGetDate
> > > > (@Tgl_STNK),@No_BPKB,dbo.fnGetDate(@Tgl_BPKB),dbo.fnGetDate
> > > > (@tgl_transfer_bbn),dbo.fnGetDate
> > > > (@Ttd_bpkb),@No_ttd_BPKB,dbo.fnGetDate
> > > > (@tgl_spp_bbn),@bbn,@Keterangan,dbo.fnGetDate
> > > > (@tgl_terbit_stnk),@id_birojasa,getdate())
> > > >
> > > > end
> > > >
> > >
> >
>