intersystems etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
intersystems etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

27 Eylül 2007

Intersytems Cache Soap Mesajlasma ve Null Sorunu

Cache ile soap mesaj iletisimi yapiyorsaniz ve gonderdiginiz mesajlarda null gonderilmesi gereken degerler varsa, default olarak bunlar gonderilmez. Ornegin gondermek istediginiz bilgiyi ZOBJ.ADI="" yada ZOBJ.ADI=$C(0) yada ZOBJ.ADI=$c(-1) olarak set etseniz bile olusturulan xml mesajinda bu saha yer almaz. Null degerlerin xml mesajinda yer almasi icin class tanimlamasina asagidaki parametrenin eklenmesi gerekir.

Parameter XMLIGNORENULL = 1;

27 Temmuz 2007

Intersystems Cache List Komutlari

Cache icinde bir grup string v.b. bilgiyi toplu halde tutabilmeye ve daha sonra bunlari kullanmaya yarayan bir takim komutlar vardir. Bunlar ;

$LISTBUILD : Grubu olusturur

S ZL=$LISTBUILD("ALI","VELI","AHMET","MEHMET")

ZL degiskeninde 1 den baslayip her eleman icin 1 artan bir sira numarasi ile grup olusturulur. Gruptaki bir elemana ulasmak icin ;

W !,$LIST(ZL,2) yada
W !,$LISTGET(ZL,2) kullanilabilir.
W !,$LG(ZL,2)

Bunlarin birbirinden farki $LIST de verilen numarali eleman grup icinde yoksa hata olusur. $LISTGET de hata olusmaz sonuc null doner.

Bir grupta kac tane eleman oldugunu bulmak icin ;

W !,$LISTLENGTH(ZL)
W !,$LL(ZL)

Gruptaki bir elemanin hangi numarada oldugunu bulmak icin ;

W !,$LISTFIND(ZZ,"ALI")
W !,$LF(ZZ,"ALI")

Grupta bir elemanin numaraya gore olup olmadigini bulmak icin ;

W !,$LISTDATA(ZZ,3)
W !,$LD(ZZ,3)
Burada 3. eleman varsa 1 doner, yoksa 0 doner.

Gruplar ic ice kullanilabilir ;

S ZZ=$LB($LB("SARI","LACIVERT"),$LB("SARI","KIRMIZI"))

Bir grubun tum elemanlarini ekrana yazdirmak icin ;

F Z=1:1:$LL(ZZ) W !,$LG(ZZ,Z)










Powered by ScribeFire.

8 Mart 2007

Cache ve Karakter Streamlar

Yeni bir nesne oluşturuyorum;
   S ZSTREAM=##CLASS(%Library.FileCharacterStream).%New()

İçeriğini okumak istediğim dosya adını giriyorum;
   S ZSTREAM.Filename="C:\deneme.txt"

While yardımı ile önce karakterleri bir lokal değişkene alıyorum, sonra ekrana yazdırıyorum;
   WHILE ('ZSTREAM.AtEnd) {
S ZSTR=ZSTREAM.ReadLine()
W !,ZSTR
}

İşim bitti nesneyi kapatıyorum.
   D ZSTREAM.%Close()

4 Mart 2007

Cache Property Erisim

Once Asagidaki Classi olusturuyorum.

Class TEST.HASTA Extends %Persistent [ ClassType = persistent, ProcedureBlock ]
{
Property ADI As %String;
Property SOYADI As %String;
}

terminalde ;
S ZOBJ=##class(TEST.HASTA).%New()
S $ZOBJPROPERTY(ZOBJ,"ADI")="TESTAD"
S $ZOBJPROPERTY(ZOBJ,"SOYADI")="TESTSOYAD"
;
W !,$ZOBJPROPERTY(ZOBJ,"ADI")
W !,$ZOBJPROPERTY(ZOBJ,"SOYADI")