gracias a ambos!
efectivamente los entrecomillados no me han cambiado nada (gracias Nelet, no se me había ni ocurrido!).
El tema es que no me da ningún error. Me explico: ejecuto, y al hacer el EXEcSql, va a
Código:
function TADOQuery.ExecSQL: Integer;
begin
InitializeMasterFields(Self);
Command.Execute(FRowsAffected, EmptyParam);
Result := FRowsAffected;
end;
y en el InitializeMasterFields(Self);
Código:
procedure InitializeMasterFields(Dataset: TCustomADODataset);
var
I: Integer;
MasterFieldList: string;
begin
with DataSet do
{ Assign MasterFields from parameters as needed by the MasterDataLink }
if (Parameters.Count > 0) and Assigned(MasterDataLink.DataSource) and
Assigned(MasterDataLink.DataSource.DataSet) then
begin
for I := 0 to Parameters.Count - 1 do
if (Parameters[i].Direction in [pdInput, pdInputOutput]) and
(MasterDataLink.DataSource.DataSet.FindField(Parameters[i].Name) <> nil) then
MasterFieldList := MasterFieldList + Parameters[i].Name + ';';
MasterFields := Copy(MasterFieldList, 1, Length(MasterFieldList)-1);
SetParamsFromCursor;
end;
end;
n Parameters.Count = 2 pero MasterDataLink.DataSource = nil, con lo que Assigned(MasterDataLink.DataSource) = false y ya se va al end.
En
Código:
function TADOCommand.Execute(var RecordsAffected: Integer;
const Parameters: OleVariant): _Recordset;
var
VarRecsAffected: OleVariant;
begin
SetConnectionFlag(cfExecute, True);
try
Initialize;
Result := CommandObject.Execute(VarRecsAffected, Parameters,
Integer(CommandObject.CommandType) + ExecuteOptionsToOrd(FExecuteOptions));
RecordsAffected := VarRecsAffected;
finally
SetConnectionFlag(cfExecute, False);
end;
end;
al hacer el Result := .... la aplicación simplemente se cierra, sin dar ninguna excepción, ni nada.
Entiendo que el problema está en Assigned(MasterDataLink.DataSource), pero no sé qué hacer. Estoy perdido.
Pero eso sí, si venís por San sebastián algún día, a una cervecita estáis invitados.
Muchas gracias.
Jon