FIX: Errore di # eliminato quando l'inserimento di record con chiave primaria CHAR

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

264766
Questo articolo è stato archiviato. L’articolo, quindi, viene offerto “così come è” e non verrà più aggiornato.
Sintomi
Quando si inserisce un nuovo record in una tabella ODBC collegata contenente un campo di testo di lunghezza fissa (CHAR) come chiave primaria, # eliminato viene visualizzato nella tutti i campi nel nuovo record.

Nota Se quindi si chiude e si riapre la tabella collegata, il record appena inserito viene visualizzato e sia inserito correttamente.
Cause
Molti driver ODBC aggiungere spazi per (o "riempire") un campo CHAR quando il numero di caratteri che vengono inserite è minore della lunghezza massima del campo. Microsoft Jet 4.0 in modo non corretto nuovamente legge il valore inserito, spaziatura e lo confronta con il valore originale, unpadded. Poiché i due valori sono diversi, Jet segnala a Microsoft Access Impossibile trovare il record appena inserito.
Risoluzione
Per risolvere questo problema, è necessario installare il service pack più recente per Jet 4.0. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
239114Procedura: Ottenere il Service Pack più recente per il motore di Database Microsoft Jet 4.0
Workaround
Utilizzare un campo di testo di lunghezza variabile (VARCHAR) come chiave primaria per la tabella.
Status
Microsoft ha confermato che questo problema riguarda i prodotti Microsoft elencati all'inizio di questo articolo. Questo problema è stato risolto in Jet 4.0 Service Pack 6 (SP6).
Informazioni

Procedura per riprodurre il problema

È possibile riprodurre il problema tramite il collegamento a un database DB2, Oracle o Microsoft SQL Server. Il problema sembra non verificarsi se non si dispone almeno 60 o più record nella tabella collegata.

Se si esamina un'analisi ODBC eseguita durante l'operazione di inserimento, vedrete che Jet consente di inserire e reselects il record corretto e che non si verificano errori nella traccia. Il problema si verifica dopo Jet recuperato il record e tenta di confrontare il valore di chiave reselected con il valore immesso dall'utente.

Per riprodurre il problema, procedere come segue:
  1. Eseguire il codice Microsoft Visual Basic riportato di seguito per generare la tabella test e il record:
    Sub GenerateTestTable()Dim conn As ObjectDim i As Long, sql as String   Set conn = CreateObject("adodb.connection")   ' Change connection string to point to your SQL Server if needed.   conn.Open "Provider=SQLOLEDB;Server=(Local);Database=Pubs;UID=sa;PWD=;"   On Error Resume Next   conn.Execute "drop table tmp_chartest"   On Error GoTo 0   sql = "create table tmp_chartest(f1 char(5) primary key, f2 char(10))"   conn.Execute sql    For i = 1 To 70        sql = "insert into tmp_chartest (f1,f2) values ('"        sql = sql & Format(i, "000") & "','XXXXXXXXXX')"        conn.Execute sql    Next i    conn.Close    Set conn = NothingEnd Sub					
  2. Avviare Microsoft Access 2000 e collegamento alla tabella tmp_chartest creato con il passaggio precedente.
  3. Aprire la tabella appena collegato e Scorri fino all'ultimo record della tabella.
  4. Aggiungere un nuovo record con campo F1 = 071 e campo F2 = XXXXXXXXXX.
  5. Scheda dal record, e deve essere visualizzato # Eliminato visualizzata in tutti i campi.
eliminato

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 264766 - Ultima revisione: 02/24/2014 00:39:05 - Revisione: 3.1

  • Microsoft Access 2000 Service Pack 1
  • Microsoft Access 2002 Standard Edition
  • kbnosurvey kbarchive kbmt kbqfe kbhotfixserver kbbug kbdatabase kbfix kbjet KB264766 KbMtit
Feedback