1、sql := 'SELECT To_char(SYSDATE,'+ QuotedStr('yyyy-MM-dd hh:mm:ss')+') as d FROM Dual';
??????QuotedStr : 此函數(shù)的作用保證數(shù)據(jù)庫里面執(zhí)行的SQL不會(huì)因?yàn)椤忍厥庾址鲥e(cuò);
??????Dual????????? : oracle數(shù)據(jù)庫里面的函數(shù)。
2、????????? Application.ProcessMessages;
這個(gè)語句的作用很大啊,工控里面有專門負(fù)責(zé)數(shù)據(jù)采集的程序,時(shí)時(shí)的需要采集數(shù)據(jù),里面要是不加上這么一句話你的前臺(tái)展示,就會(huì)很難看,鼠標(biāo)點(diǎn)擊下去,老半天沒有反應(yīng)。
3、Delphi--Stream和Variant的轉(zhuǎn)化網(wǎng)上廣為流傳的兩個(gè)函數(shù),確實(shí)好用。
procedure VariantToStream (
const v : OleVariant; Stream : TMemoryStream);
var? p : pointer;
begin
? Stream.Position :=
0;
? Stream.Size := VarArrayHighBound (v,
1) - VarArrayLowBound (v,
1) +
1;
? p := VarArrayLock (v);
? Stream.Write (p^, Stream.Size);
? VarArrayUnlock (v);
? Stream.Position :=
0;
end;
procedure StreamToVariant (Stream : TMemoryStream; var v : OleVariant);
var
? p : pointer;
begin
? v := VarArrayCreate ([0, Stream.Size - 1], varByte);
? p := VarArrayLock (v);
? Stream.Position := 0;
? Stream.Read (p^, Stream.Size);
? VarArrayUnlock (v);
end;
4、這個(gè)函數(shù)也是非常鎮(zhèn)的,
function ByteType(const S: string; Index: Integer): TMbcsByteType;
IsDBCSLeadByte
告訴你一個(gè)非常有用的函數(shù)。
bytetype? 它可以判斷一個(gè)字符串中,某個(gè) Char 是單個(gè)字母,還是雙字節(jié)的前一位或
后一位。
mbSingleByte?單字母
mbLeadByte?雙字節(jié)第一位
mbTrailByte?雙字節(jié)第二位
在copy(Str,1,12)中結(jié)果有個(gè)全角的8,,,過不去了居然quotedstr()的結(jié)果也出現(xiàn)了?我怎么辦
function TFrmMain.procQJWT(olds: String): String;
var
? tmp : string;
begin
? tmp := Trim(olds);
? Result := tmp;?
? if Length(tmp)>12 then
? begin
??? //是單個(gè)字符
??? if? ByteType(tmp,12)=mbLeadByte then
????? result := Copy(tmp,1,11)
??? else
????? result := Copy(tmp,1,12);
? end;
end;
寫了一個(gè)函數(shù)就解決戰(zhàn)斗了!
posted on 2006-12-20 15:07
壞男孩 閱讀(1269)
評(píng)論(3) 編輯 收藏 所屬分類:
DELPHI