Fråga : Tomma tecken som sätts in in i SQL, bordlägger via ADODB

Total- uppgift:  Läsning för förmiddag I ett Excelräkneark och att befolka en SQL-databas med informationen läste från räknearket.  Kodifierasnippeten visar efter hur I-förmiddaghandstil till en sätta in kallade ”FirstName”.

”förklarar en dunkel myTableRS för recordset
, som ADODB.Recordset
” gör recordset
fastställd myTableRS = ny öppen recordset för ADODB.Recordset
'using en bordlägga i databasen, och connection myTableRS.Open ”tblContactInformation”, g_adoCon som är adOpenDynamic, str för adLockPessimistic
myTableRS.AddNew
=
myTableRS.Fields (”FirstName” för g_WS.Cells (4, 2)) = StrValue (str)
myTableRS.Update

The fungerar StrValue visas nedanfört, men huvudsakligen den klipper vad har lästs från Excel spreadsheet.

Function StrValue (str som stränger) som den String
stren =
för klippning (str) om (Len (str) = 0) Then
str =”???? ”
avslutar If
StrValue = str
End Function

The värderar gånget tillbaka av StrValue är korrekt, men, när den tilldelas till, sätter in (”FirstName”) där är extra förbigår på avsluta av sätta in.  ”FirstName” förklaras, som ett nvarchar (40) sätter in som inte accepterar nulls.

Thanks för din help.
" klar "

Svar : Tomma tecken som sätts in in i SQL, bordlägger via ADODB

>>This orsakar varje sätter in för att vara fyllt tomt. <>Faktiskt det är inte vad den påstår.  Här det är igen:

Inställningen för UPPSÄTTNINGEN ANSI_PADDING påverkar inte det nchar, nvarchar, ntext, text, avbildar, och stort värdera. De visar alltid UPPSÄTTNINGEN ANSI_PADDING PÅ uppförande. Detta hjälpmedlet som skuggar utrymmen och nollor, klippas inte.

, om så där skuggar utrymmen, det är kommande från ditt kodifierar.

Men ta inte mitt uttrycker för det, testar efter ut i SSMS:
1:
2:
3:
4:
5:
MELLANLÄGGStblContactInformationen (FirstName) VÄRDERAR (”SheahaST”)

VALT	”,|” + FirstName + ”,|”,
FRÅN	tblContactInformation
VAR	FirstName = ”SheahaST”,
Andra lösningar  
 
programming4us programming4us