Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Ustyugova
Зарегистрирован: 21.02.2008 Сообщения: 24
|
Добавлено: Пт Фев 22 2008 21:36 Заголовок сообщения: Приведение букв к единому регистру в Firebird |
|
|
Помогите плз! Нужен триггер для приведения букв к единому регистру. На поле наложено ограничение check(meesure in('Т','КГ','Л','ШТ')
как сделать так чтобы можно было вводить и маленькими буквами, а триггер автоматически приводил буквы к единому регистру. Зарание спасибо |
|
Вернуться к началу |
|
|
feomatr
Зарегистрирован: 17.03.2006 Сообщения: 2 Откуда: Ростов-на-Дону
|
Добавлено: Ср Мар 05 2008 10:08 Заголовок сообщения: Re: Приведение букв к единому регистру в Firebird |
|
|
Ustyugova писал(а): | Помогите плз! Нужен триггер для приведения букв к единому регистру. На поле наложено ограничение check(meesure in('Т','КГ','Л','ШТ')
как сделать так чтобы можно было вводить и маленькими буквами, а триггер автоматически приводил буквы к единому регистру. Зарание спасибо |
new.str = upper(new.str);
проверил - на русском работает |
|
Вернуться к началу |
|
|
Ustyugova
Зарегистрирован: 21.02.2008 Сообщения: 24
|
Добавлено: Ср Мар 05 2008 18:08 Заголовок сообщения: |
|
|
cпасибо большое |
|
Вернуться к началу |
|
|
Dmitriy_3206
Зарегистрирован: 27.12.2004 Сообщения: 61 Откуда: Chernigov
|
Добавлено: Пт Июл 18 2008 16:25 Заголовок сообщения: |
|
|
А у меня не работает с руским, пришлось свою UDF делать
Могу поделится готовой иль исходником (Codegear)
Умеет
Всю строку маленькими
Всю строку большими
Первая большая остальные маленькие |
|
Вернуться к началу |
|
|
Ustyugova
Зарегистрирован: 21.02.2008 Сообщения: 24
|
Добавлено: Ср Июл 30 2008 16:14 Заголовок сообщения: |
|
|
Можно и то и другое |
|
Вернуться к началу |
|
|
Dmitriy_3206
Зарегистрирован: 27.12.2004 Сообщения: 61 Откуда: Chernigov
|
Добавлено: Чт Июл 31 2008 00:44 Заголовок сообщения: |
|
|
library uplower;
{ Important note about DLL memory management: ShareMem must be the
first unit in your library's USES clause AND your project's (select
Project-View Source) USES clause if your DLL exports any procedures or
functions that pass strings as parameters or function results. This
applies to all strings passed to and from your DLL--even those that
are nested in records and classes. ShareMem is the interface unit to
the BORLNDMM.DLL shared memory manager, which must be deployed along
with your DLL. To avoid using BORLNDMM.DLL, pass string information
using PChar or ShortString parameters. }
uses
SysUtils,
Classes;
function UpperAll(s: PChar): PChar; cdecl; export;
begin
Result:=AnsiStrUpper(s);
end;
function LowerAll(s: PChar): PChar; cdecl; export;
begin
Result:=AnsiStrLower(s);
end;
function UpperFirst(s: PChar): PChar; cdecl; export;
var r: string;
begin
r:=strpas(s);
r:=AnsiUpperCase(Copy(r, 1, 1)) + copy(r, 2, MaxInt);
Result:=PCHAR(r);
end;
{$R *.res}
exports UpperAll;
exports LowerAll;
exports UpperFirst;
begin
end. |
|
Вернуться к началу |
|
|
Dmitriy_3206
Зарегистрирован: 27.12.2004 Сообщения: 61 Откуда: Chernigov
|
Добавлено: Чт Июл 31 2008 00:44 Заголовок сообщения: |
|
|
SET TERM ^;
DECLARE EXTERNAL FUNCTION UpperFirst
CSTRING(255)
RETURNS CSTRING(255) FREE_IT
ENTRY_POINT 'UpperFirst' MODULE_NAME 'uplower.dll';
^
DECLARE EXTERNAL FUNCTION UPPERALL
CSTRING(255)
RETURNS CSTRING(255) FREE_IT
ENTRY_POINT 'UpperAll' MODULE_NAME 'uplower.dll';
^
DECLARE EXTERNAL FUNCTION LOWERALL
CSTRING(255)
RETURNS CSTRING(255) FREE_IT
ENTRY_POINT 'LowerAll' MODULE_NAME 'uplower.dll';
^
SET TERM ; ^ |
|
Вернуться к началу |
|
|
Ustyugova
Зарегистрирован: 21.02.2008 Сообщения: 24
|
Добавлено: Пн Авг 04 2008 18:20 Заголовок сообщения: |
|
|
Спасибо большое |
|
Вернуться к началу |
|
|
|