Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Вниз

Что за параметры требуются для выполнения Execute в KOLSLQuery   Найти похожие ветки 

 
Armaniak ©   (2003-07-25 12:06) [0]

Собственно весь вопрос. Не смог найти по хелпам.
Заранее спасибо.


 
Boguslaw   (2003-07-25 19:52) [1]

Hello,

   function Open(Params : array of const) : Integer;
   {* Execute SQL query returning resultset}

   function Execute(Params : array of const) : Integer;
   {* Execute SQL query without returning resultset (Note: use RowID to find last inserted row
   for example to establish foreign key relation)}

Params = array of const
You must read about this in Delphi help.
This is of course something that needs change, but as nobody really take attention to it I assume that this object is not needed by anyone.
I always use this to put params into SQL statement. You must allocate strings variables for each param and pass it to Open or Execute like this:

procedure TDataMod.ChangeUser(Nr : Integer);
var
Iden : String;
begin
   try
   Iden := Int2Str(Nr);
   with QWorking^ do begin
       Close;
       SQL.Clear;
       SQL.Add("SELECT NR_PRACOWNIKA,IMIE || "" "" || NAZWISKO AS DANEOS,NAZWA_STANOWISKA AS STANOWISKO,");
       SQL.Add("ADMIN,POP3,SMTP,USER,PASSWORD,EMAIL");
       SQL.Add(" FROM STANOWISKA");
       SQL.Add(" INNER JOIN PRACOWNICY USING(NR_STANOWISKA) WHERE NR_PRACOWNIKA =%Q");
       if Open([Iden]) <> 0 then Exit;
       First;
       if RowCount <> 1 then Exit;
       NrPrac := Str2Int(SField[0]);
       Admin := StrEq("T",SField[3]);
       POP3 := SField[4];
       SMTP := SField[5];
       USER := SField[6];
       PASSWORD := SField[7];
       ADR_MAIL := SField[8];
       DaneOsobowe := SFieldByName["DANEOS"] + CrLf + SFieldByName["Stanowisko"];
   end;
   finally
   QWorking.Close;
   end;
end;

Note that each %Q or %q must be represented by param in Params array:
SQL = select source form repository when cathegory=%Q and date < %Q

var
s1,s2 : String;
begin
s1 := "KOL";
s2 := DecodeDateToStringInFormat???(Now); //2003-01-03 (yyyy-mm-dd);
SLQuery.Open[s1,s2];


Regards
Boguslaw



 
Boguslaw   (2003-07-27 17:11) [2]

Actually I think that You can also use %d statement for integer variables and other format parameters but I"m not sure .
Try
select * from sometable where thing=%d

and Open([V]) function

where V is integer variable.

This solution is powerfull (just change V value and Open again!) but not compatible with SQL standard.


 
Armaniak ©   (2003-07-28 05:11) [3]

Спасибо, ещё раз. Обязательно попробую.



Страницы: 1 вся ветка

Форум: "KOL";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.052 c
3-1078393605
kalliopiy
2004-03-04 12:46
2004.04.04
Проблема с округлением


1-1079600030
Timego
2004-03-18 11:53
2004.04.04
Межпроцессное взаимодействие средствами COM+


7-1074239041
Max_222
2004-01-16 10:44
2004.04.04
Как лучше заблокировать txt-файл...


14-1078828017
}|{yk
2004-03-09 13:26
2004.04.04
Насколько криптостоек такой вариант шифрования?


4-1074958399
Gibon
2004-01-24 18:33
2004.04.04
Как поставить хук мышы на чужую програму ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский