Problem with SDAC 4 prof. and RefreshQuick
Posted: Mon 26 Mar 2007 14:29
Dear Support,
yesterday I update to new version of SDAC 4.x professional for Delphi 7 professional.
I use Microsoft SQL Server 2005 Express edition with service pack 2 in italian language.
I see a new function RefreshQuick.
How can I use correctly this new method ?
If I understand correctly, in my table, I must define a unique key and a timestamp field to use it.
This is metadata of my table :
CREATE TABLE [dbo].[RAPPORTINI] (
[CONT] int IDENTITY(1, 1) NOT NULL,
[CODCLI] varchar(8) COLLATE Latin1_General_CI_AS NOT NULL,
[CODUTE] varchar(6) COLLATE Latin1_General_CI_AS NOT NULL,
[DATA] datetime NULL,
[NUMORE] numeric(9, 2) NULL,
[NOTE] text COLLATE Latin1_General_CI_AS NULL,
[IMG_SCANNER] image NULL,
[SPEDITO] bit CONSTRAINT [DF__RAPPORTIN__SPEDI__1CF15040] DEFAULT (0) NOT NULL,
[FATTURATO] bit NOT NULL,
[SYNCFIELD] timestamp NULL,
[UTENTE] char(30) COLLATE Latin1_General_CI_AS CONSTRAINT [DF__RAPPORTIN__UTENT__1DE57479] DEFAULT user_name() NOT NULL,
[ULTMOD] datetime CONSTRAINT [DF__RAPPORTIN__ULTMO__1ED998B2] DEFAULT getdate() NOT NULL,
CONSTRAINT [PK_RAPPORTINI] PRIMARY KEY CLUSTERED ([CONT]),
CONSTRAINT [FK_RAPPORTINI] FOREIGN KEY ([CODCLI])
REFERENCES [dbo].[ANAGRAFICA_CLIENTI] ([CODCLI])
ON UPDATE NO ACTION
ON DELETE NO ACTION
)
ON [PRIMARY]
TEXTIMAGE_ON [PRIMARY]
GO
I do that , but when I call in my TMSQuery this method after insert a new record and execute a post ,I obtain an error message.
This table is a detail table of another table - ANAGRAFICA_CLIENTI - and there is a foreign key between field CODCLI of table RAPPORTINI and CODCLI of table ANAGRAFICA_CLIENTI.
I copy SQL statement that I use in my TMSQuery :
SQL Select :
select * FROM
RAPPORTINI
WHERE CODCLI=:CODCLI
ORDER BY DATA
SQL Insert :
INSERT INTO RAPPORTINI
(CODCLI, CODUTE, DATA, NUMORE, NOTE, IMG_SCANNER, SPEDITO, FATTURATO)
VALUES
(:CODCLI, :CODUTE, :DATA, :NUMORE, :NOTE, :IMG_SCANNER, :SPEDITO, :FATTURATO)
SQL Update :
UPDATE RAPPORTINI
SET
CODCLI = :CODCLI, CODUTE = :CODUTE, DATA = :DATA, NUMORE = :NUMORE, NOTE = :NOTE,
IMG_SCANNER = :IMG_SCANNER, SPEDITO = :SPEDITO, FATTURATO = :FATTURATO,
UTENTE = user_name(), ULTMOD = getdate()
WHERE
CONT = :Old_CONT
SQL Delete :
DELETE FROM RAPPORTINI
WHERE
CONT = :Old_CONT
SQL Refresh :
SELECT
RAPPORTINI.CODCLI, RAPPORTINI.CODUTE, RAPPORTINI.DATA, RAPPORTINI.NUMORE,
RAPPORTINI.NOTE, RAPPORTINI.IMG_SCANNER, RAPPORTINI.SPEDITO, RAPPORTINI.FATTURATO,
RAPPORTINI.SYNCFIELD
FROM
RAPPORTINI
WHERE
CONT = :CONT
If I create a new DB with a table and with an unique field and a timestamp field I haven't any type of problems.
Can you tell me more about this new interesting method ?
Best regards.
Sergio B.
yesterday I update to new version of SDAC 4.x professional for Delphi 7 professional.
I use Microsoft SQL Server 2005 Express edition with service pack 2 in italian language.
I see a new function RefreshQuick.
How can I use correctly this new method ?
If I understand correctly, in my table, I must define a unique key and a timestamp field to use it.
This is metadata of my table :
CREATE TABLE [dbo].[RAPPORTINI] (
[CONT] int IDENTITY(1, 1) NOT NULL,
[CODCLI] varchar(8) COLLATE Latin1_General_CI_AS NOT NULL,
[CODUTE] varchar(6) COLLATE Latin1_General_CI_AS NOT NULL,
[DATA] datetime NULL,
[NUMORE] numeric(9, 2) NULL,
[NOTE] text COLLATE Latin1_General_CI_AS NULL,
[IMG_SCANNER] image NULL,
[SPEDITO] bit CONSTRAINT [DF__RAPPORTIN__SPEDI__1CF15040] DEFAULT (0) NOT NULL,
[FATTURATO] bit NOT NULL,
[SYNCFIELD] timestamp NULL,
[UTENTE] char(30) COLLATE Latin1_General_CI_AS CONSTRAINT [DF__RAPPORTIN__UTENT__1DE57479] DEFAULT user_name() NOT NULL,
[ULTMOD] datetime CONSTRAINT [DF__RAPPORTIN__ULTMO__1ED998B2] DEFAULT getdate() NOT NULL,
CONSTRAINT [PK_RAPPORTINI] PRIMARY KEY CLUSTERED ([CONT]),
CONSTRAINT [FK_RAPPORTINI] FOREIGN KEY ([CODCLI])
REFERENCES [dbo].[ANAGRAFICA_CLIENTI] ([CODCLI])
ON UPDATE NO ACTION
ON DELETE NO ACTION
)
ON [PRIMARY]
TEXTIMAGE_ON [PRIMARY]
GO
I do that , but when I call in my TMSQuery this method after insert a new record and execute a post ,I obtain an error message.
This table is a detail table of another table - ANAGRAFICA_CLIENTI - and there is a foreign key between field CODCLI of table RAPPORTINI and CODCLI of table ANAGRAFICA_CLIENTI.
I copy SQL statement that I use in my TMSQuery :
SQL Select :
select * FROM
RAPPORTINI
WHERE CODCLI=:CODCLI
ORDER BY DATA
SQL Insert :
INSERT INTO RAPPORTINI
(CODCLI, CODUTE, DATA, NUMORE, NOTE, IMG_SCANNER, SPEDITO, FATTURATO)
VALUES
(:CODCLI, :CODUTE, :DATA, :NUMORE, :NOTE, :IMG_SCANNER, :SPEDITO, :FATTURATO)
SQL Update :
UPDATE RAPPORTINI
SET
CODCLI = :CODCLI, CODUTE = :CODUTE, DATA = :DATA, NUMORE = :NUMORE, NOTE = :NOTE,
IMG_SCANNER = :IMG_SCANNER, SPEDITO = :SPEDITO, FATTURATO = :FATTURATO,
UTENTE = user_name(), ULTMOD = getdate()
WHERE
CONT = :Old_CONT
SQL Delete :
DELETE FROM RAPPORTINI
WHERE
CONT = :Old_CONT
SQL Refresh :
SELECT
RAPPORTINI.CODCLI, RAPPORTINI.CODUTE, RAPPORTINI.DATA, RAPPORTINI.NUMORE,
RAPPORTINI.NOTE, RAPPORTINI.IMG_SCANNER, RAPPORTINI.SPEDITO, RAPPORTINI.FATTURATO,
RAPPORTINI.SYNCFIELD
FROM
RAPPORTINI
WHERE
CONT = :CONT
If I create a new DB with a table and with an unique field and a timestamp field I haven't any type of problems.
Can you tell me more about this new interesting method ?
Best regards.
Sergio B.