Od verze 3.140 je zrušena jednotka U_Common.
Od verze 3.140.03.84580 byla jednotka U_Common zase vrácena. Byly z ní odstraněny funkce, které neoptimálně pracovaly s SQL dotazy.
Funkce pro zpracovávání SQL dotazů byly nahrazeny viz novinka.
procedure RunSQLStringWithParams(Af: TAdoFile; SQL: string; AParams: array of const; ATypes: array of TxFieldType; ASizes: array of Integer);
- Af: Adofile, kde se SQL dotaz pustí
- SQL: dotaz
- AParams: pole hodnot parametrů
- ATypes: pole typů parametrů
- ASizes: pole velikosti parametrů, dosazuje se pouze u stringových
function ReadSQLValueDM(DM: TDataM; SQL: string; ADefaultCatalog: TCatalogEnum = ceDATA; AExpandMacro: Boolean = False): Variant;
, která slouží k zavolání SQL dotazu a vracení jedné návratové hodnoty.
Funkce na MS SQL nepodporuje tyto typy:
Funkce na ORACLE nepodporuje tyto typy:
procedure RunSQLSelectDM(DM: TDataM; var MemF: TMFile; SQL: string; AParams: array of Variant = nil; ATypes: array of TxFieldType = nil; ASizes: array of Integer = nil; ADefaultCatalog: TCatalogEnum = ceDATA; ExpandMacro: Boolean = False);
procedure RunSQLStringDM(DM: TDataM; SQL: string; AParams: array of Variant = nil; ATypes: array of TxFieldType = nil; ASizes: array of Integer = nil; ADefaultCatalog: TCatalogEnum = ceDATA; ExpandMacro: Boolean = False);
Během spouštění funkcí se na základě parametru DM určí katalog, nad kterým se má dotaz spustit a to:
- pokud je xFile DM typu TAdoFile, použije se jeho katalog
- pokud je BaseFile xFile DM typu TAdoFile, použije se jeho katalog
- pokud se jedná o položky, zjišťuje se stejným způsobem katalog v DMOwnerovi
- pokud se nenajde žádný AdoFile bere se katalog, podle parametru ADefaultCatalog
Zbylé parametry jsou stejné jako ve funkcích RunSQLStringWithParams či RunSQLSelectWithParams, jen jsou parametry AParams, ATypes a ASizes uvedeny jako nepovinné.
Poslední parametr jsem přidal parametr ExpandMacro, který je dafaultně na False. Tento parametr vynucuje volání funkce ChangeIdentForRun, pro nahrazení maker.
Parametr je na False hlavě kvůli mechanizmu hledání optimálního AdoFile - není v některých případech jasné, který AdoFile bude nalezen zda z DM nebo z DM.DMOwner.