602SQL-Úplná dokumentace Index  

Rozhraní 602SQL.NET

Datové rozhraní 602.NET je nativní poskytovatel dat (Data Provider) z 602SQL Serveru od verze 9.5 pro komponenty .NET. Lze chápat jako vrstva mezi 602SQL Serverem a třídami ADO.NET. 602SQL.NET provider (dříve se používalo ve stejném významu také označení driver) poskytuje databázovou konektivitu, provádění SQL příkazů, získávání odpovědí na SQL dotazy. Data z 602SQL serveru mohou být přístupna přímo přes manipulační SQL příkazy nebo být přístupná v tzv. DataSetech i v době, kdy 602SQL data provider je odpojen od 602SQL serveru.

V současné verzi je vytvářeno a zkoušeno pouze v prostředí Windows, až bude k dipozici stabilní odpovídající platforma v Linuxu (projekt Mono), bude se podle zájmu uživatelů uvažovat i o provideru pro Linux.

Vývojář seznámený s prostředím a filozofií .NET Frameworku může použít libovolnou dokumentaci k ADO.NET, pouze zamění názvy základních tříd. Je však třeba mít na zřeteli, že většina dokumentace je psána pro použití s Microsoft SQL Serverem (resp. s jinou databází) a zdaleka ne vše půjde použít ve stejné podobě i s 602SQL Serverem.

Základní informace

Instalace

Data Provider 602.NET se skládá z jedné běhové knihovny SQL602dpXX.dll (kde XX je číslo verze, např. 10 pro verzi 10.0) a dvou pomocných designových knihoven SQL602dpXX.Design.dll a SQL602dpXX.Resources.dll. Umístění knihovny SQL602dpXX.dll je libovolné, doporučujeme Globální cache pro assembly (GAC), knihovnu SQL602dpXX.Design.dll je třeba umístit tak, aby byla k dispozici - nejjednodušší je obě knihovny zkopírovat do adresáře C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE\, odkud se spouští MS Visual Studio .NET resp. do nějakého podadresáře, kde se najdou díky tzv. probingu (PublicAssemblies/en/). Knihovny závisí na knihovnách z instalace 602SQL, proto musí být intalační adresář součástí proměnné PATH Windows.

Knihovnu SQL602dpxx.dll lze integrovat do prostředí MS Visual Studia .NET a usnadnit návrh aplikací využívajících 602SQL.NET tím, že základní třídy (SQL602Connection, SQL602DataAdapter a SQL602Command) se přidají do Toolboxu a vkládají se do projektu např. typu Windows Application pouhým přetažením myší.

Šíření

Spolu s přeloženou aplikací (*.EXE) je třeba šířit i běhovou knihovnu SQL602dpXX.dll. Nejvhodnější umístění je ve stejném adresáři jako *.EXE.

Použití

Předpokladem použití 602SQL.NET Data Provideru je import jmenného prostoru Software602.SQL602DataProvider do aplikace. Např. pro jazyk C# se to provede příkazem:

using Software602.SQL602DataProvider
Pro kompilaci aplikace je třeba kompilátoru sdělit umístění knihovny SQL602dpXX.dll. V prostředí MS Visual Studia .NET se to provádí v okně Solution Explorer pod References, při kompilaci z příkazového řádku pomocí parametru /r (program v C#):
csc /out:pokus.exe /r:C:\602sql\SQL602dp10.dll pokus1.cs

Příklad použití

using System;
using System.Data;
using Software602.SQL602DataProvider;

namespace ConsoleApp1
{
  class Class602
  {
    private static  SQL602Connection conn = new SQL602Connection
        ("SERVERNAME=win10test; SCHEMANAME=TestDOTNET");

    static void Main(string[] args)
    {
      try 
      {
        OpenConnection();
        if (conn.Active)
        {
          Test_DataReader();
          Test_Parameters();
        }
      }
      catch (SQL602Exception ex)
      { Console.WriteLine(ex.Message);}
      finally 
      { conn.Close(); }
    }

    private static void OpenConnection ()
    {
      try
      {
 // vyvolat logovací dialog
        conn.LoginPrompt = true;
        conn.Open();
        if (conn.Active)
        {
          Console.WriteLine("Prihlasen k serveru: "+conn.ServerName+" do aplikace: "+conn.SchemaName);
          Console.WriteLine("Prihlasen jako: "+conn.Who_am_I);
        }
      }
      catch (SQL602Exception ex)
      { Console.WriteLine(ex.Message); }
    }

    private static void Test_DataReader ()
    {
      SQL602DataReader reader = null;
      try 
      {
        SQL602Command prik = new SQL602Command ("SELECT * FROM UserTab",conn);
        reader = (SQL602DataReader)prik.ExecuteReader();
 // vypsat hodnoty sloupce
        while (reader.Read())
          Console.WriteLine(reader["LOGNAME"]);
        Console.WriteLine();
 // vypsat jména sloupců
        for (int i=0;i<reader.FieldCount;i++)
          Console.WriteLine (reader.GetName(i));
      }
      catch (SQL602Exception ex)
      { Console.WriteLine(ex.Message); }
	  finally {
        if (reader != null)
        reader.Close();
	  }
    }

    private static void Test_Parameters()
    {
 // ukázka příkazu s host parametry, v aplikaci je funkční SQL funkce s touto hlavičkou:
 //         FUNCTION Fce_test(IN inpar INT, OUT outpar CHAR(10), INOUT inoutpar REAL ) RETURNS BOOLEAN;

      SQL602Command cParHost = new SQL602Command("SET :>res = Fce_test(:<inp,:>outp,:<>inoutp)",conn);
 //  kolekce parametrů se vytvoří automaticky
      cParHost.Parameters["inp"].Value = 9;
      cParHost.Parameters["inoutp"].Value = "99";
      cParHost.ExecuteNonQuery();
      if ((bool)cParHost.Parameters["res"].Value)
      {
        Console.WriteLine("parametr OUTP: "+cParHost.Parameters["outp"].Value.ToString());
        Console.WriteLine("parametr INOUTP: "+cParHost.Parameters["inoutp"].Value.ToString());
      };
 // ukázka příkazu s dynamickými parametry
      SQL602Command cParDyn = new SQL602Command("SET ? = Fce_test(?,?,?)",conn);
      cParDyn.Parameters[1].Value = 9;
      cParDyn.Parameters[3].Value = 99;
      cParDyn.ExecuteNonQuery();
      if ((bool)cParDyn.Parameters[0].Value)
      {
        Console.WriteLine("parametr OUTP: "+cParDyn.Parameters[2].Value.ToString()); 
        Console.WriteLine("parametr INOUTP: "+cParDyn.Parameters[3].Value.ToString());
      };

    }
  
  }
}

Seznam subsekcí: