NetRS ve transaction
NetRS: oturum üzerinden SQL
NetRS, açık NetOpenX oturumunun veritabanı bağlantısıyla SQL çalıştırır. Ayrı bir SqlConnection açmadan okuma yapmak için kullanışlıdır ve hem MSSQL hem Oracle'da çalışır. REST'teki api/v2/Queries/NetRS ucu bunun HTTP karşılığıdır.
NetRS rs = kernel.yeniNetRS(sirket);
try
{
rs.Ac("SELECT CARI_KOD, CARI_ISIM FROM TBLCASABIT WHERE SUBE_KODU = 0");
while (!rs.EOF)
{
string kod = rs.FieldByName("CARI_KOD").AsString;
// ...
rs.SonrakiK(); // sonraki kayıt
}
}
finally { Marshal.ReleaseComObject(rs); }
| Üye | İşlev |
|---|---|
Ac(sql) |
SELECT çalıştırır, imleci ilk kayda konumlar |
EOF |
Kayıtların sonuna gelindi mi |
FieldByName(ad) |
Alan; .AsString gibi dönüştürücülerle okunur |
IlkK(), SonrakiK() |
İlk / sonraki kayda git |
Calistir(sql) |
INSERT/UPDATE/DELETE çalıştırır |
NetsisTransaction(TTransactionTipi) |
Transaction başlat / bitir / geri al |
Logo örneklerinde tablo adı TBL öneki olmadan da yazılır (SELECT * FROM CASABIT). Kendi kurulumunuzda hangisinin çalıştığını deneyin; TBL… adları her durumda tablonun kendisidir.
Calistiriş kurallarını atlar. Logo örneğiCASABIT/CASABITEK'eINSERTile cari ekler; bu, yazma kuralının dışındadır. Kart ve belge yazmak için ilgili nesneyi (Cari,Fatura…) kullanın.Calistir'i yalnızca Netsis'in kendisinin de basitUPDATEile değiştirdiği alanlar ya da kendi yardımcı tablolarınız için kullanın.
NetsisTransaction
Birden çok kaydı tek bir iş olarak yazmak için iş nesnelerinde (Cari, Stok, CekSenAna, NetRS…) NetsisTransaction vardır:
Stok stok = kernel.yeniStok(sirket);
StokTemelBilgi tb = stok.TemelBilgi();
StokEkBilgi ek = stok.EkBilgi();
stok.NetsisTransaction(TTransactionTipi.ttBaslat);
try
{
tb.Stok_Kodu = "STK-0001"; tb.Stok_Adi = "Örnek";
ek.Stok_Kodu = "STK-0001";
stok.kayitYeni();
// aynı transaction içinde başka kayıtlar...
stok.NetsisTransaction(TTransactionTipi.ttBitir); // onayla
}
catch
{
stok.NetsisTransaction(TTransactionTipi.ttGeriAl); // geri al
throw;
}
TTransactionTipi |
Anlamı |
|---|---|
ttBaslat |
Transaction başlat |
ttBitir |
Onayla (commit) |
ttGeriAl |
Geri al (rollback) |
Transaction'ın aynı oturumdaki (aynı Sirket) diğer nesnelere de yayıldığı örneklerden anlaşılır; farklı Sirket nesneleri ayrı bağlantılardır. Uzun transaction'lar Netsis kullanıcılarını kilitleyebilir; kısa tutun.
REST'te karşılığı OpenTransaction / CommitTransaction / RollBackTransaction uçlarıdır (Transaction ve hatalar).