PB怎么把一个字符串 定长,比如123 怎么把他变成00000123这样子的!如果长度不足就按照左对齐或者右对齐 然后不足的字符串 填上固定的字符!
------解决方案--------------------
right('000000000' + '123', 8)
------解决方案--------------------
如果字符串都是数字,也可以这样写:
string(long('123'), '00000000')
------解决方案--------------------
还可以写成:
fill('0', 8 - len('123')) + '123'
------解决方案--------------------
oci语句,在 孙益华 老兄的基础上加的。大家可以试试试验一下
VOID FAR pb_notify(long al_sqlca_handle ,HWND hwnd,UINT msg)
{
Lda_Def FAR *pLda ;
Cda_Def FAR *pCda;
ub1 hda[HDA_SIZE];
sword rowcount;
#define DEFER_PARSE 1
#define VERSION_7 2
try
{
memset(hda,0,HDA_SIZE);
pLda = (Lda_Def FAR *)al_sqlca_handle; //此处是使用pb 传入的sqlca.dbhandle()传入进来的
if ( oopen(pCda,pLda,NULL, -1, -1, NULL, -1) !=0)
{
messagebox(hwnd,"开辟游标区失败","",0) ;
return ;
}
if(! pCda )
{
return ;
}
if(oparse(pCda,(OraText *)sql.c_str(), -1, DEFER_PARSE, (ub4) VERSION_7) == 0)
{
if (odefin(pCda, 1, (ub1 *) &rowcount, (sword) sizeof(sword),(sword) INT_TYPE,(sword) -1, (sb2 *) 0, (text *) 0, -1, -1,(ub2 *) 0, (ub2 *) 0)==0)
{
if(oexfet(pCda, (ub4)1, FALSE, FALSE)==0)
{
if(rowcount > 0)
{
if (::IsWindow(hwnd) && msg >= WM_USER)
::PostMessage(hwnd,msg,0,0);
}
}
}
if(oclose(pCda))
{
return ;
}
}
}
catch(...)
{}
}