Query nesnesi oluşturmak için kullanılır. Bu sayede veri tabanında harici yöntemlerle sorgulama yapmak yerine Unity Object içerisinden SQL kullanılabilir. UnityApplication nesnesinden ulaşılan NewQuery metodunu kullanarak IQuery nesnesini oluştururuz.
IQuery nesnesinin Inset, Update, Delete ifadelerini çalıştırmak için kullanabilirsiniz veya Select ifadeleri yazarak sonuç olarak dönen kayıtlar üzerinde yine bu nesnenin ilgili metot ve özelliklerini kullanarak istediğiniz işlemleri yapabilirsiniz. Bir Select ifadesini çalıştırdığımızda sonuç olarak dönen satırlar IQuery nesnesinin Coollection tipindeki IQueryFields nesnesine döner. Bu nesnenin altında her kayıt IQueryField tipindeki nesnelerde saklıdır.
Return Type | Açıklama |
---|---|
IQuery | Query kullanmak için gerekli olan nesne oluşturur. |
VB Örneği
Dim Query As Variant
Dim SQLClause As Variant
Dim QueryFields As Variant
Dim QueryFields1 As Variant
Dim QueryFields2 As Variant
Dim QueryFields3 As Variant
Dim QueryString As String
Dim RES As Boolean
Dim str As String
Set Query = UnityApp.NewQuery
Set SQLClause = Query.SQLClause
Call SQLClause.SelectClause.New("LOGICALREF", "")
Call SQLClause.SelectClause.New("CODE", "")
Call SQLClause.SelectClause.New("NAME", "")
Call SQLClause.FromClause.NewTable("LG_001_ITEMS", "A")
Call SQLClause.WhereClause.New("CARDTYPE", 2, 22, 0)
Call SQLClause.OrderClause.New("CODE", 0)
Query.Statement = SQLClause.SQL
If Query.OpenDirect Then
Set QueryFields = Query.QueryFields
RES = Query.First
If RES Then
str = str & _"Item Referance - Item Code - Item Name" & _
Chr(10)
End If
Do While RES
QueryFields1 = Query.QueryFields.Item(0).Value
QueryFields2 = Query.QueryFields.Item(1).Value
QueryFields3 = Query.QueryFields.Item(2).Value
str = str & _QueryFields1 & " - " &_QueryFields2 & " - " & _ QueryFields3 & _
Chr(10)
RES = Query.Next
Loop
Query.Close
End If
MsgBox str
Query = Empty
SQLClause = Empty
C# Örneği
string resultTxt = "";
string tblItems = UnityApp.GetTableName( 1,UnityApp.CurrentFirm, UnityApp.ActivePeriod);
string sqlTxt = "SELECT TOP 5 LOGICALREF, CODE FROM " + tblItems + " WHERE CARDTYPE 22";
UnityObjects.Query Qry = Global.UnityApp.NewQuery();
Qry.Statement = sqlTxt;
if (Qry.OpenDirect())
{
bool res = Qry.First();
while (res)
{
resultTxt = resultTxt + Qry.QueryFields[0].Value.ToString() + "\t" + Qry.QueryFields[1].Value.ToString() + "\n";
res = Qry.Next();
}
MessageBox.Show(resultTxt);
}
else
{
MessageBox.Show(Qry.DBErrorDesc.ToString());
}
Qry.Close();
Copyright © 2018 Logo Yazılım