数据库一字段是char类型,长度是10,程序中使用fieldbyname取的,但是有个问题,程序中这个字段的长度小于10的时候,默认是空格了,所以提取的时候出现了错误,怎么才能不它转换过来?不带空格?
例如程序中是1001,但是用 FieldByName('InvoiceNo').AsString:=EdtInvoiceNo.Text, 提取的时候可能就是1001 ,带着6个空格,怎么样才能把空格去掉啊!!谢谢各位大哥!!
例如程序中是1001,但是用 FieldByName('InvoiceNo').AsString:=EdtInvoiceNo.Text, 提取的时候可能就是1001 ,带着6个空格,怎么样才能把空格去掉啊!!谢谢各位大哥!!
如果数据库是orale 用varchar2
这样就没有空格了。
Edit1.Text:=Trim(FieldByName('InvoiceNo').AsString)
var
I, L: Integer;
begin
L := Length(S);
I := 1;
while (I <= L) and (S[I] <= ' ') do Inc(I);
if I > L then Result := '' else
begin
while S[L] <= ' ' do Dec(L);
Result := Copy(S, I, L - I + 1);
end;
end;去除字串两边的空字符.
Trims leading and trailing spaces and control characters from a string.
去除两端的空格TrimLeft function
Trims leading spaces and control characters from a string.
去除左端的空格TrimRight function
Trims trailing spaces and control characters from a string.
去除右端的空格
建議樓主將char,varchar,nvarchar數據類型搞清楚再說!
去掉6個空格簡單, 這不是解決問題的最佳方案!治標不治本!
難道每次讀取這個字段數據的時候都要 Trim(xxx.FieldByName('InvoiceNo').AsString)???最好你按照一樓pdbird(老巢)的說法.將char換成varchar!!!
trim(EdtInvoiceNo.Text)
都可以
用于去掉字符串两边的空格.
你定义的字段类型的问题,如果是varchar就不会有空格
解决方法有二:
一是更改字段类型为varchar
二是用trim
ADOQuery1.Parameters.ParamByName('C1').Value:='2005-12-12';
---------------------------------
ADOQuery1.Parameters.ParamByName('C1').Value:=StrToDate('2004-12-12');
也报错
刚学dephi,请大家指教,还有那位告诉我怎么发贴啊?