The way I solved this and removed the error was by doing this:
Code: Select all
procedure Tdatamod.uspCompanyData_SBeforeUpdateExecute(Sender: TDataSet;
StatementTypes: TStatementTypes; Params: TDAParams);
var
c: Integer;
begin
if stUpdate in StatementTypes then
for c := 1 to Params.Count - 1 do
Params[c].ParamType := ptInput;
end;
But this is not the correct way to do it. It should work without doing this. You must investigate this issue and make a fix soon. This is an urgent issue for me.
Some more information:-
SQLUpdate property of the UniStoredProc component:
Code: Select all
{:RETURN_VALUE = CALL CompanyData_U;1 (:DatabaseID, :BusinessName, :OfficeAddress1, :OfficeAddress2, :OfficeSuburb, :OfficeState, :OfficePostcode, :PostalAddress1, :PostalAddress2, :PostalSuburb, :PostalState, :PostalPostcode, :PhoneNumber, :FaxNumber, :EmailAddress, :Website, :ABN, :ACL, :Notes)}
SQL being passed as seen in DBMonitor:
Code: Select all
{:RETURN_VALUE = CALL CompanyData_U;1 (:DatabaseID, :BusinessName, :OfficeAddress1, :OfficeAddress2, :OfficeSuburb, :OfficeState, :OfficePostcode, :PostalAddress1, :PostalAddress2, :PostalSuburb, :PostalState, :PostalPostcode, :PhoneNumber, :FaxNumber, :EmailAddress, :Website, :ABN, :ACL, :Notes)}
The stored procedure DDL in SQL Server:
Code: Select all
CREATE PROCEDURE CompanyData_U
@DatabaseID Int,
@BusinessName NVarChar(200),
@OfficeAddress1 NVarChar(200),
@OfficeAddress2 NVarChar(200),
@OfficeSuburb NVarChar(200),
@OfficeState NVarChar(200),
@OfficePostcode NVarChar(200),
@PostalAddress1 NVarChar(200),
@PostalAddress2 NVarChar(200),
@PostalSuburb NVarChar(200),
@PostalState NVarChar(200),
@PostalPostcode NVarChar(200),
@PhoneNumber NVarChar(200),
@FaxNumber NVarChar(200),
@EmailAddress NVarChar(200),
@Website NVarChar(200),
@ABN NVarChar(200),
@ACL NVarChar(200),
@Notes NVarChar(2000) AS
BEGIN
UPDATE dbo.CompanyData SET
BusinessName = @BusinessName,
OfficeAddress1 = @OfficeAddress1,
OfficeAddress2 = @OfficeAddress2,
OfficeSuburb = @OfficeSuburb,
OfficeState = @OfficeState,
OfficePostcode = @OfficePostcode,
PostalAddress1 = @PostalAddress1,
PostalAddress2 = @PostalAddress2,
PostalSuburb = @PostalSuburb,
PostalState = @PostalState,
PostalPostcode = @PostalPostcode,
PhoneNumber = @PhoneNumber,
FaxNumber = @FaxNumber,
EmailAddress = @EmailAddress,
Website = @Website,
ABN = @ABN,
ACL = @ACL,
Notes = @Notes
WHERE
DatabaseID = @DatabaseID
END
The table DDL in SQL Server:
Code: Select all
CREATE TABLE dbo.CompanyData (
DatabaseID Int IDENTITY NOT NULL,
BusinessName NVarChar(200),
OfficeAddress1 NVarChar(200),
OfficeAddress2 NVarChar(200),
OfficeSuburb NVarChar(200),
OfficeState NVarChar(200),
OfficePostcode NVarChar(200),
PostalAddress1 NVarChar(200),
PostalAddress2 NVarChar(200),
PostalSuburb NVarChar(200),
PostalState NVarChar(200),
PostalPostcode NVarChar(200),
PhoneNumber NVarChar(200),
FaxNumber NVarChar(200),
EmailAddress NVarChar(200),
Website NVarChar(200),
ABN NVarChar(200),
ACL NVarChar(200),
Notes NVarChar(2000),
CONSTRAINT [PK__Company __54F91D84414EAC47] PRIMARY KEY CLUSTERED (
DatabaseID
)
)
GO
Looking forward to your quickest response.