here we go with another problem in 8.4 series with the same code working correctly on 8.3.2:
Code: Select all
CREATE TABLE public.motrici_assicurazioni (
mas_targa char(10) NOT NULL,
mas_anno_competenza integer NOT NULL DEFAULT 0,
mas_compagnia integer NOT NULL,
mas_nr_documento varchar(80) NOT NULL,
mas_data_inizio date,
mas_data_scadenza date,
mas_importo_01 numeric(12,2) DEFAULT 0,
mas_importo_02 numeric(12,2) DEFAULT 0,
mas_importo_03 numeric(12,2) DEFAULT 0,
mas_importo_04 numeric(12,2) DEFAULT 0,
mas_importo_05 numeric(12,2) DEFAULT 0,
mas_importo_06 numeric(12,2) DEFAULT 0,
mas_importo_07 numeric(12,2) DEFAULT 0,
mas_importo_08 numeric(12,2) DEFAULT 0,
mas_importo_09 numeric(12,2) DEFAULT 0,
mas_importo_10 numeric(12,2) DEFAULT 0,
mas_importo_11 numeric(12,2) DEFAULT 0,
mas_importo_12 numeric(12,2) DEFAULT 0,
mas_tipo_assicurazione char(4),
mas_note text,
CONSTRAINT pk_motrici_assicurazioni PRIMARY KEY (mas_targa, mas_anno_competenza, mas_compagnia, mas_nr_documento)
)
;
Code: Select all
qryDummy.SQL.Text :=
'INSERT INTO motrici_assicurazioni ( ' +
' mas_targa ' +
', mas_anno_competenza ' +
', mas_compagnia ' +
', mas_nr_documento ' +
', mas_data_inizio ' +
', mas_data_scadenza ' +
', mas_importo_01 ' +
', mas_importo_02 ' +
', mas_importo_03 ' +
', mas_importo_04 ' +
', mas_importo_05 ' +
', mas_importo_06 ' +
', mas_importo_07 ' +
', mas_importo_08 ' +
', mas_importo_09 ' +
', mas_importo_10 ' +
', mas_importo_11 ' +
', mas_importo_12 ' +
', mas_tipo_assicurazione ' +
', mas_note ' +
') VALUES ( ' +
' :targa ' +
', :anno_competenza ' +
', :fornitore ' +
', :nr_documento ' +
', :data_inizio ' +
', :data_scadenza ' +
', :importo_01 ' +
', :importo_02 ' +
', :importo_03 ' +
', :importo_04 ' +
', :importo_05 ' +
', :importo_06 ' +
', :importo_07 ' +
', :importo_08 ' +
', :importo_09 ' +
', :importo_10 ' +
', :importo_11 ' +
', :importo_12 ' +
', :tipo_assicurazione ' +
', :note ' +
') ' +
'ON CONFLICT (mas_targa, mas_anno_competenza, mas_compagnia, mas_nr_documento) ' +
'DO UPDATE SET ' +
' mas_importo_01 = EXCLUDED.mas_importo_01 ' +
', mas_importo_02 = EXCLUDED.mas_importo_02 ' +
', mas_importo_03 = EXCLUDED.mas_importo_03 ' +
', mas_importo_04 = EXCLUDED.mas_importo_04 ' +
', mas_importo_05 = EXCLUDED.mas_importo_05 ' +
', mas_importo_06 = EXCLUDED.mas_importo_06 ' +
', mas_importo_07 = EXCLUDED.mas_importo_07 ' +
', mas_importo_08 = EXCLUDED.mas_importo_08 ' +
', mas_importo_09 = EXCLUDED.mas_importo_09 ' +
', mas_importo_10 = EXCLUDED.mas_importo_10 ' +
', mas_importo_11 = EXCLUDED.mas_importo_11 ' +
', mas_importo_12 = EXCLUDED.mas_importo_12 ' +
'; ';
qryDummy.ParamByName('targa').AsString := targa;
qryDummy.ParamByName('anno_competenza').AsInteger := annoCompetenza + 1;
qryDummy.ParamByName('fornitore').AsInteger := cdFornitore;
qryDummy.ParamByName('nr_documento').AsString := nrDocumento;
qryDummy.ParamByName('data_inizio').AsDate := dataInizio;
qryDummy.ParamByName('data_scadenza').AsDate := dataFine;
qryDummy.ParamByName('importo_01').AsCurrency := importo[01];
qryDummy.ParamByName('importo_02').AsCurrency := importo[02];
qryDummy.ParamByName('importo_03').AsCurrency := importo[03];
qryDummy.ParamByName('importo_04').AsCurrency := importo[04];
qryDummy.ParamByName('importo_05').AsCurrency := importo[05];
qryDummy.ParamByName('importo_06').AsCurrency := importo[06];
qryDummy.ParamByName('importo_07').AsCurrency := importo[07];
qryDummy.ParamByName('importo_08').AsCurrency := importo[08];
qryDummy.ParamByName('importo_09').AsCurrency := importo[09];
qryDummy.ParamByName('importo_10').AsCurrency := importo[10];
qryDummy.ParamByName('importo_11').AsCurrency := importo[11];
qryDummy.ParamByName('importo_12').AsCurrency := importo[12];
qryDummy.ParamByName('tipo_assicurazione').AsString := cdTipoAssicurazione;
qryDummy.ParamByName('note').AsWideString := nota;
When you execute the insert query you have an invalid input syntax for type numeric "" error message, but DBMonitor shows me that I load the correct param values.
Can you check it please? I really need to start working on PostgreSQL 13.
My system configuration:
Delphi 10.4.2
PostgreSQL 12.7
UniDAC 8.4.4
Regards.
Sergio