Konu: tableupdate anında VFPOledb hatası : field MYGUID doesnt accept null .
tabloda field adi MYGUID c(38) Not Null Primary Key olan tabloma
asagidaki form method kodlari ile kayit ekliyorum
kontrol amacli browse yada form uzerindeki textbox a sonuc geliyor ancak kaydetme aninda su hatayi aliyorum
Microsoft OLEDB Provider for VisualFoxPro : field MYGUID doesnt accept null values
nedenin bir turlu bulamadim yardimlariniz icin simdiden tesekkur.
NOT : mode u SQL e aldigimda sorun yok ayni kod calisiyor ...
&& form method NewRec
With This As Form
Select (.ptable)
Insert Into (.ptable) (myguid) Values(NewID())
&&Append Blank
.txtCkodu.SetFocus()
.Refresh()
Endwith
* form method SaveRec
With This As Form
Select (.ptable)
&&BROWSE NORMAL
If Not Tableupdate(1,.T.,.ptable) && Tableupdate(2,.T.,.ptable) dada sonuc ayni
Aerror(laError)
Messagebox(laError[1,2])
Else
Wait Window Timeout 0.1 'Kaydedildi....'
Endif
Endwith
ca_vfp.prg kodu
Define Class Ca_Cari As CaBase Of ("CaBase.prg")
Alias = "Cari"
SelectCmd = ;
"select Myguid, Ckodu, Cadi from Cari"
CursorSchema = ;
"Myguid C(38), Ckodu C(16), Cadi C(25)"
KeyFieldList = "ckodu"
Tables = "Cari"
UpdatableFieldList = ;
"Ckodu, Cadi"
UpdateNameList = ;
"Ckodu Cari.Ckodu, Cadi Cari.Cadi"
Procedure AfterCursorFill
Lparameters lUseCursorSchema, NoDataOnLoad, cSelectCmd, lResult
If Tagcount(This.Alias) = 0
CursorSetProp("Buffering",3,This.Alias)
Select (This.Alias)
Index On CKODU Tag 'CKODU'
Index On MYGUID Tag 'MYGUID'
CursorSetProp("Buffering",5,This.Alias)
Set Order To 0
If !Empty(This.Order)
Set Order To Tag (This.Order)
Endif
Endif
Endproc
Enddefine
Guid olusturan kod
FUNCTION NEWID()
LOCAL pGUID,rGUID
DECLARE INTEGER UuidCreate IN 'RPCRT4.dll' STRING @pguid
DECLARE INTEGER StringFromGUID2 IN 'Ole32.dll' ;
STRING rguid, STRING @lpsz, INTEGER cchMax
pGUID=REPLICATE(CHR(0),16)
rGUID=REPLICATE(CHR(0),80)
RETURN IIF(INLIST(UuidCreate(@pGUID),0,1824),;
IIF(StringFromGUID2(pGUID,@rGUID,40) # 0, ;
STRCONV(LEFT(rGUID,76),6), ""),"")
ENDFUNC