Для отключения подсветки UItableviewcell
cell.selectionStyle = UITableViewCellSelectionStyleNone;
И не следует позволять пользователю взаимодействовать с ячейкой.
cell.userInteractionEnabled = NO;
Это не вызывает утечки памяти. 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));
Есть принятый ответ :-), но я хочу указать вам на более простой и более простой способ определять и использовать параметры с помощью одной строки:
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;
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;