Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 UPPER  [new]
jack_vosmerkin
Member

Откуда:
Сообщений: 63
сурс: 10595275

перепесал на д11 старую процедуру но кажись неправильно

procedure SQLite3_UPPER(context: Pointer; argc: Integer; argv: PPointer); cdecl;
var
  a, r: string;
begin
  case sqlite3_value_type(argv^) of
    SQLITE_NULL: sqlite3_result_null(context);
    else
    begin
      a := UTF8ToWideString(sqlite3_value_text(argv^));
      r := AnsiUpperCase(a);
      sqlite3_result_text(context, Pointer(r), Length(r), TResultDestructor(SQLITE_TRANSIENT));
    end;
  end;
end;



вызываю
sqlite3_create_function(FDConnection1, 'UPPER', 1, SQLITE_UTF8, nil, @SQLite3_UPPER, nil, nil);


в отве получаю
автор
Access violation at address 044569DB in module 'sqlite3.dll'. Read of address 2E007400.


почему?
14 янв 22, 11:36    [22420903]     Ответить | Цитировать Сообщить модератору
 Re: UPPER  [new]
Gerasimenko
Member

Откуда:
Сообщений: 4719
jack_vosmerkin,

чет по коду вообще не понятно

автор
context: Pointer

автор
sqlite3_result_text(context

автор
sqlite3_create_function(FDConnection1


и так далее ... Pointer(r) vs 'UPPER'...


кто ж тебя знает, что ты и где переделал...
14 янв 22, 11:43    [22420906]     Ответить | Цитировать Сообщить модератору
 Re: UPPER  [new]
jack_vosmerkin
Member

Откуда:
Сообщений: 63
конечно напасть легче чем ссылку из первой строки открыть но вопрос в другом сейчас
14 янв 22, 11:52    [22420909]     Ответить | Цитировать Сообщить модератору
 Re: UPPER  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 13503
procedure SQLite3_UPPER(context: Pointer; argc: Integer; argv: PPointer); cdecl;
var
  a, r: UTF8String;
begin
  case sqlite3_value_type(argv^) of
    SQLITE_NULL: sqlite3_result_null(context);
    else
    begin
      a := sqlite3_value_text(argv^);
      r := AnsiUpperCase(a);
      sqlite3_result_text(context, Pointer(r), Length(r), TResultDestructor(SQLITE_TRANSIENT));
    end;
  end;
end;
14 янв 22, 18:16    [22421252]     Ответить | Цитировать Сообщить модератору
 Re: UPPER  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 55283

Может, лучше UTF8UpperCase использовать?..

Posted via ActualForum NNTP Server 1.5

14 янв 22, 18:23    [22421255]     Ответить | Цитировать Сообщить модератору
 Re: UPPER  [new]
527470
Member

Откуда:
Сообщений: 34
Уверены что тут

sqlite3_create_function(FDConnection1, 'UPPER', 1, SQLITE_UTF8, nil, @SQLite3_UPPER, nil, nil);

прямо TFDConnection нужно передавать?

Почему не воспользуетесь компонентом TFDSQLiteFunction?
19 янв 22, 11:51    [22423037]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить