{ **** UBPFD *********** by delphibase.endimus.com ****
>> Преобразование строки в строку для SQL-сервера

Преобразование строки в строку для SQL-сервера

Зависимости: ???
Автор: Сергей, nfkazak@inbox.ru, Краснодар
Copyright: VIP BANK
Дата: 11 сентября 2002 г.
***************************************************** }

function SQL_String(Value: string): string;
var
i: integer;
Ch_1,
Ch_2: Char;
QM_1,
QM_2: Boolean;
begin
QM_1 := False;
QM_2 := False;
for i := 1 to Length(Value) do
begin
case Value[i] of
””: QM_1 := True;
‘”‘: QM_2 := True;
end;
end;
if QM_1 and (not QM_2) then
begin
Ch_1 := ‘”‘;
Ch_2 := ””;
end
else
begin
Ch_1 := ””;
Ch_2 := ‘”‘;
end;
if QM_1 and QM_2 then
begin
for i := 1 to Length(Value) do
if Value[i] = Ch_1 then
Value[i] := Ch_2;
end;
Result := Ch_1 + Value + Ch_1;
end;

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Преобразование boolean в Y или N для SQL-сервера

Преобразование boolean в Y или N для SQL-сервера

Зависимости: ???
Автор: Сергей, nfkazak@inbox.ru, Краснодар
Copyright: VIP BANK
Дата: 11 сентября 2002 г.
***************************************************** }

function SQL_YesNo_String(Value: boolean): string;
begin
if Value then
Result := ”’Y”’
else
Result := ”’N”’
end;

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Преобразование boolean в строку для SQL-сервера

Преобразование boolean в строку для SQL-сервера

Зависимости: ???
Автор: Сергей, nfkazak@inbox.ru, Краснодар
Copyright: VIP BANK
Дата: 11 сентября 2002 г.
***************************************************** }

function SQL_Boolean_String(Value: boolean): string;
begin
if Value then
Result := ‘1′
else
Result := ‘0′
end;

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Преобразование даты в строку для SQL-сервера

Преобразование даты в строку для SQL-сервера

Зависимости: ???
Автор: Сергей, nfkazak@inbox.ru, Краснодар
Copyright: VIP BANK
Дата: 11 сентября 2002 г.
***************************************************** }

function SQL_Date_String(Date: TDateTime): string;
var
OldFormat: string;
ResultStr: string;
begin
if Date > 0 then
begin
OldFormat := ShortDateFormat;
ShortDateFormat := ‘mm/dd/yyyy’;
ResultStr := DateToStr(Date);
ShortDateFormat := OldFormat;
ResultStr[3] := ‘/’;
ResultStr[6] := ‘/’;
Result := ”” + ResultStr + ””;
end
else
Result := ”;
end;

Автор: delphi | в 8:20 | Рубрики: Базы данных

Для успешного кодирования необходимо включить typinfo в список используемых модулей. Код данного примера инвертирует логическое свойство Active набора данных, связанного с активным элементом управления при каждом нажатии пользователем клавиши ESC.

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
PropInfo: PPropInfo;
PropValue: TObject;
ds: TDataSource;
begin
if Key = VK_ESCAPE then
{ Основной код ниже }
try
ds := nil;
{ Проверяем, имеет ли компонент свойство DataSource }
PropInfo := GetPropInfo(ActiveControl.ClassInfo, ‘DataSource’);
if PropInfo <> nil then
{ Свойство компонента datasource типа class (например, TDataSource) }
if PropInfo^.PropType^.Kind = tkClass then
begin
PropValue := TObject(GetOrdProp(ActiveControl, PropInfo));
{ Создаем слепок найденного TDataSource }
ds := (PropValue as DB.TDataSource);
{ Используем dataset, связанный с datasource }
if not (ds.DataSet.State in dsEditModes) then
ds.DataSet.Active := not ds.DataSet.Active;
end;
except
on E: EInvalidCast do
ShowMessage(’Ошибка. Ожидался DataSource’);
end;
end;