01. november 2006 - 11:46Der er
13 kommentarer og 1 løsning
[Microsoft][ODBC SQL Server Driver]String data, right truncation.
Denne fejl opstår og jeg aner ikke hvad der menes med den:
[Microsoft][ODBC SQL Server Driver]String data, right truncation.
Jeg har lidt på fornemmelsen at dette er grunden til at jeg får den fejl, men det for står jeg ikke, da jeg har brugt samme runtine til noget andet. ADOQuery1.Parameters.ParamByName('ParamFILEDATA').Value := DataList.Text;
Jeg har lavet dette i en andet program som flytter data fra en db til en anden db og her bruger jeg samme rutine, men jeg har ingen problemer her.
for Y := 0 to FileList.Count - 1 do begin Label2.Caption := FileList.Strings[Y]; Label2.Refresh; ADOQuery1.SQL.Text := 'Select DATALOG From DATALOG Where FILENAME='+Quotedstr(FileList.Strings[Y]); ADOQuery1.Open; while not ADOQuery1.Eof do begin MemoryStream := (ADOQuery1.CreateBlobStream(ADOQuery1.FieldByName('DATALOG'),bmRead) as TMemoryStream); DataList.LoadFromStream(MemoryStream); Memo1.Lines.Text := DataList.Text; Memo1.Refresh; ADOQuery4.SQL.Text := 'Insert Into DATALOG (NAME, FILENAME, FILEDATA) Values(:ParamNAME,:ParamFILENAME,:ParamFILEDATA)'; ADOQuery4.Connection.BeginTrans; try ADOQuery4.Parameters.ParamByName('ParamNAME').Value := UserList.Strings[I]; ADOQuery4.Parameters.ParamByName('ParamFILENAME').Value := FileList.Strings[Y]; ADOQuery4.Parameters.ParamByName('ParamFILEDATA').Value := DataList.Text; ADOQuery4.ExecSQL; ADOQuery4.Connection.CommitTrans; except ADOQuery4.Connection.RollbackTrans; Raise; end;
Din fejl tyder på at du indsætter en tekst der er større/længere en dit DBfelt kan indeholde ( jeg har fået samme fejl fordi jeg prøvede at indsætte 'abc' i et felt der var def. som varchar(2) )
Jeg forstår det ikke helt, at nText ikke skulle kunne indholde en txtfil som fylder 39k.
Jeg har i et anden tråd spurgt til hvor meget nText kunne indholde og fik af vide fra Arne V, at han mener den skulle kunne indholde 2 GB = 1 milliard unicode bogstaver.
datatypen nText har sikker en default/Max (32kb ) længde, som du muligvis kan ændre hvis ikke så vælg den MSSQL - type der hedder Image det er en type du kan hælde hvadsomhelst i ( binært ) og det er fint nok til dit formål ( en tekst fil er jo også bare 1'ere og 0'er ) så den kan du godt gemme binært :)
Jeg har nu løst problemet ved at lave datatypen om til Image som Martin forslog. Grunden til at jeg valgte en anden datatype end Image før var pga at det hele bare kørte som r.. og hat, men nu af en eller anden grunden køre det bare som smurt. Det har aldrig kørt hurtigere end det gør nu. Så.....
Martin, hvis du ligger et svar. Så får du points.
Måske du kunne svare mig på et andet spørgsmål angående MDIParent og MDIChild, men det er i en anden tråd.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.