Лучший способ передать параметры TADOStoredProc (Delphi)

Для отключения подсветки UItableviewcell

cell.selectionStyle = UITableViewCellSelectionStyleNone;

И не следует позволять пользователю взаимодействовать с ячейкой.

cell.userInteractionEnabled = NO;
8
задан Earlz 16 May 2010 в 18:01
поделиться

3 ответа

Это не вызывает утечки памяти. stored_procedure очистит свои параметры. Вы можете подтвердить это с помощью FastMM, добавив следующее в ваш .dpr:

  ReportMemoryLeaksOnShutdown := True;

Во-первых, я бы избавился от оператора «with». Это может привести к большему количеству проблем и менее читаемому коду.

Я бы создал вспомогательный метод, который принимает хранимую процедуру, имя параметра и значение параметра, что сделает ваш код более управляемым.

AddParam(stored_procedure, '@SSN', edtSSN.text);
AddParam(stored_procedure, '@FirstName', edtFirstName.Text);
AddParam(stored_procedure, '@LastName', edtLastName.Text);
AddParam(stored_procedure, '@UserRID', GetRIDFromCombo(cbUser));
11
ответ дан 5 December 2019 в 04:49
поделиться

Есть принятый ответ :-), но я хочу указать вам на более простой и более простой способ определять и использовать параметры с помощью одной строки:

stored_procedure.Parameters.CreateParameter('SSN',ftString,pdInput,30,edtSSN.text);

Это просто и гибко, потому что вы можете определять входные и выходные параметры в одной строке.

и из справки Delphi:

function CreateParameter(const Name: WideString; DataType: TDataType;
    Direction: TParameterDirection; Size: Integer; 
    Value: OleVariant): TParameter;
19
ответ дан 5 December 2019 в 04:49
поделиться

ADO создаст параметры для вас, вам просто нужно вызвать Refresh для объекта параметров:

 SP.Connection := SqlConnection; // must be done before setting procedure name
 sp.ProcedureName := 'MyStoredProc';
 sp.Parameters.Refresh; // This will create the parameters for you as defined in SQL Server
 sp.Parameters.ParamByName('@SSN'').Value  := SSN; // params now exist

и т. Д.

Если выводятся какие-либо параметры, вам нужно будет установить их явно:

   sp.Parameters.ParamByName('@ReturnValue').Direction := pdInputOutput;
10
ответ дан 5 December 2019 в 04:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: