You might try posting actual error messages.
If you'd like to go "the extra mile" you could even show the code that produces the errors.
Thanks Mr.Bascom.
I read data from an Openedge DB 10.2B version,
I use 32 bit ODBC driver, because Visual Studio is a 32BIT application.
My code inside a SSIS package of SQL SERVER 2008 R2.
DSN Isolation Level READ UNCOMMITED as told Progress Help Desk and i do nout use WITH NOLOCK hint,,,
I read every day all customers to put them in a DW Sql server Table ...(like Others tables ..it is not only that table).
With no users activity no problem, with users working, problems with violation key ,,,,but it is not true,,,
Every day i run also DBTOOL utility on all tables interested in DW ... to prevent any lenght fields problems...
Openedge Progess 10.2b is on a AIX UNIX Server and ERP is an Italian ERP for retail companies...
In the past i used to pull data form text files...and no problems of this kind...
I am not able to find a solution,,,,i will go back to use text files...
Thanks in advance...
Sql code :
===========================================
select '1' AS codazienda ,
gpdc.codpdc ,
gpdc.ragsoc ,
gpdc.indir,
gpdc.cap,
gpdc.local,
gpdc.stato,
jclasger.codice AS CodClaCli ,
jresp3.oper AS CodRespComm
, CASE ysetcli.codsett WHEN '' THEN 'D' ELSE ysetcli.codsett END AS Codsett
,agenti.agente,
gpdc.potencli,gpdc.class0,gpdc.class1,gpdc.class2,gpdc.class3,gpdc.class4,gpdc.class5,gpdc.class6,gpdc.class7, gpdc.class8,gpdc.class9, gpdc.abcfatt,gpdc.abcfreq,gpdc.numdip,gpdc.budget,gpdc.rischio,gpdc.numins,gpdc.grucli,gpdc.fido,gpdc.condpag,gpdc.codpdcgru,gpdc.codpdccol,gpdc.codgru,gpdc.prov
, gpdc.datchiu ,gpdc.dataper,gpdc.telefono,gpdc.email,
CASE gpdc.flaspe WHEN 1 THEN 'S' ELSE 'N' END as Flaspe,
CASE gpdc.flaspetr WHEN 1 THEN 'S' ELSE 'N' END as Flaspetr
,CASE gpdc.flabol WHEN 1 THEN 'S' ELSE 'N' END as Flabol,gpdc.partiva,gpdc.codfisc,gpdc.codlis,gpdc.lisrif, CASE gpdc.statocom WHEN '' THEN 'XXXXXXXXXX' ELSE gpdc.statocom END AS Statocom ,
gpdc.cellu, gpdc.rischio AS Rischio,
CASE gpdc.rischio WHEN 0 THEN 'Entro Fido' WHEN 1 THEN 'Fuori Fido' WHEN 2 THEN 'Fuori Fido Bloccante' WHEN 3 THEN 'Blocco Insoluto' END AS DescrizioneRischio,
gpdc.numins AS NumeroInsoluti,gpdc.insatt AS InsolutiAttivi,
gpdc.inspag AS InsolutiPagati,gpdc.datchiu AS DataChiusura,
CASE gpdc.addcos WHEN 1 THEN 'S' ELSE 'N' END AS AddebitoCavo,gpdc."pa-ipa" AS CodiceIpa,
CASE gpdc."pa-ftelet" WHEN 1 THEN 'S' ELSE 'N' END AS FlaFattPa
From pub.gpdc
LEFT OUTER JOIN pub.jclasger
ON gpdc.codpdc = jclasger.codrif
AND jclasger.tipo = 'ANCLIE'
AND jclasger.codclass = '01'
LEFT OUTER JOIN pub.jgercod
ON jclasger.codice = jgercod.codice
AND jgercod.tipo = 'ANCLIE'
AND jgercod.codclass = '01'
LEFT OUTER JOIN pub.jresp3
ON gpdc.codpdc = jresp3.codice
AND jresp3.tipo = 'RC'
LEFT OUTER JOIN pub.ysetcli
ON gpdc.codsett = ysetcli.codsett
LEFT OUTER JOIN pub.agenti
ON gpdc.agente = agenti.agente
where gpdc.tipmas = '3'
====================================
SSIS package is composed of four steps:
Step 1 Truncate SQL SERVER DW Table.
Step 2 ADO.NET source editor that run SQL above... (Connection with DSN ..)
Step 3 Data Conversion for UNICODE conversion
Step 4 Ole DB Destination that maps all fields read and move them in a SQL SERVER DW Table.