没有直接的函数返回文件的大小。上面的GetFileSize需要先打开文件,最后关闭文件。我觉得最简单的函数大概是stat函数了。
struct stat sb;
stat(FileName, &sb);
//sb.st_size 就是文件的大小 (用到的头文件是 sys\stat.h)
Bcb 读取文件的大小 September 23, 2009
在C++Builder中取得命令行参数 July 29, 2009
原作者:抱雪http://win.chinaunix.net/bbs/thread-1237-1-1.html
用过C语言编程的人都知道,在DOS下的编程可以通过main函数的参数取得命令行参数的个数以及每个参数的字符串,例如
int main(int argv ,char *argv[])
{
…
}
则命令行参数是argc个,这些参数分别存储在argv[0]~argv[argc-1]中,其中argv[0]是可执行文件的名字(含路径),那么 Windows程序是怎么取得命令行参数的呢?用C语言写过windows程序的人都知道,在windows程序的主函数WinMain()中,有一个参数lpszCmd,这个参数就是命令行参数。但我们在windows编程时一般都没在WinMain()函数工作,再加上lpszCmd是整个命令行,要取得每个参数使用也不方便,有没有更好的方法呢?
如果你是使用的C++Builder编程,那么我就恭喜你,在C++Builder中用使用命令行参数是非常简单。C++Builder定义了三个全局变量和函数CmdLine、ParamStr()、ParamCount(),有了这三个变量和函数,就可以非常方便地使用命令行参数了,首先我们来看一下这几个函数和变量的定义:
extern PACKAGE char *CmdLine;
extern PACKAGE AnsiString __fastcall ParamStr(int Index);
extern PACKAGE int __fastcall ParamCount(void);
CmdLine和WinMain()的参数lpszCmd是一样的,也就是整个命令行参数;ParamCount()用来取得命令行参数的个数,但不包括可执行文件名,也就是相当于DOS下的argc-1,ParamSter()用来取得每一个命令行参数的值,ParamStr(0)就是可执行文件名,实际的参数就是ParamStr(1)~ParamStr(ParamCount())。下面就以一个例子来说明这三个函数变量的使用。
在窗体上放置一个Label,用来显示总的命令行参数;再加入一个ListBox,用来显示每个参数,然后在窗体的onCreate事件中加入以下代码:
Label1->Caption=CmdLine;
for(int i=0;i<=ParamCount();i++)
ListBox1->Items->Add(ParamStr(i));
然后在菜单Run->Parameters…中修改命令行参数,然后运行程序……怎么样?够简单的吧!
Split String April 4, 2009
10 楼hzbigdog(苦命的程序员)回复于 2004-03-15 16:37:10 得分 0
算了,就共享一下我得代码吧!不过要给分哦!
//将字符串拆解成数组,以Flag为分解标志
//例如:AnsiString S = “asd,234,sdf,22″;
TStringList *T = new TStringList;
char flag =’,';
ResolveString(&S, T, &flag);
for (int i = 0; i < T->Count; i++)
T->String(i);//访问拆分好的字符串
void ResolveString(AnsiString *Source, TStringList *Aim, char *flag)
{
const int Count = Source->Length();
int site = 1, Len = 0;//当前截取的位置
AnsiString astrTemp, OutStr;
Aim->Clear();
//测试要分解为多少各子串
for (int i = 1; i <= Count; i++)
if (*Source->SubString(i,1).c_str() == *flag) Len++;
//开始攫取字符
for (int i = 0; i < Len; i++)//数组层循环
{
for (; site <= Count; site++)//字符层循环
{
astrTemp = Source->SubString(site,1); //获取一个字符
if (*astrTemp.c_str() == *flag)
{ /*如果发现当前取到的为分隔符,那么条过分隔符,结束循环
并开始下一组字符串的截取*/
site++;
break;
}
OutStr = OutStr + astrTemp;//合并成字符串
}
Aim->Add(OutStr);
OutStr = “”;
}
}Top
11 楼hzbigdog(苦命的程序员)回复于 2004-03-15 16:45:17 得分 0
一个小错误
//例如:AnsiString S = “asd,234,sdf,22″;
中”asd,234,sdf,22″;最后必须加一个’,'。正确的是
AnsiString S = “asd,234,sdf,22,”;
赫赫1;你也可以自己优化一下!
如何实现点击DBGrid的字段名进行排序 May 1, 2008
用TQuery或TADOQuery作数据源更灵活,下面完整代码送上,可以正向或反向排序的。
void __fastcall TDlgTaskResult::DBGridResultTitleClick(TColumn *Column)
{
DBGridResult->Tag = (DBGridResult->Tag==Column->ID+1)?
(-DBGridResult->Tag):(Column->ID+1);
AnsiString KeyFieldName;
if (Column->Field->FieldKind == fkData)
KeyFieldName = Column->Field->FieldName;
else if (Column->Field->FieldKind == fkLookup)
KeyFieldName = Column->Field->KeyFields;
if (KeyFieldName.IsEmpty())
return;
AnsiString QryStr = “order by “;
QryStr += KeyFieldName;
if (DBGridResult->Tag<0)
QryStr += ” desc”;
AnsiString sqltxt = DbModule->QueryTaskResult->SQL->Text;
sqltxt.Delete(sqltxt.Pos(“order by”),
sqltxt.Length()-sqltxt.Pos(“order by”)+1);
sqltxt += QryStr;
TADOQuery* aQuery =
dynamic_cast<TADOQuery*>(Column->Grid->DataSource->DataSet);
if (aQuery==NULL)
return;
aQuery->Active = false;
aQuery->SQL->Text = sqltxt;
aQuery->Active = true;
}
C++Builder的StringReplace函数 March 31, 2008
StringReplace(temp,”xx”,”tt”,TReplaceFlags()<<rfReplaceAll);
c++ builder 中ShellExecute函数的用法 March 31, 2008
c++ builder 中ShellExecute函数的用法
[ 2007-04-10 21:37:51 | Author: 雪松 ]
Font Size: Large | Medium | Small
转:
Q: 如何打开一个应用程序?
ShellExecute(this->m_hWnd,”open”,”calc.exe”,”",”", SW_SHOW );
或
ShellExecute(this->m_hWnd,”open”,”notepad.exe”,
“c:\\MyLog.log”,”",SW_SHOW );
As you can see, I haven’t passed the full path of the programs.
Q: 如何打开一个同系统程序相关连的文档?
ShellExecute(this->m_hWnd,”open”,
“c:\\abc.txt”,”",”",SW_SHOW );
Q: 如何打开一个网页?
ShellExecute(this->m_hWnd,”open”,
“http://www.google.com”,”",”", SW_SHOW );
Q: 如何激活相关程序,发送EMAIL?
ShellExecute(this->m_hWnd,”open”,”mailto:jx.yang@qiangxin.com.cn “,”",”", SW_SHOW );
Q: 如何用系统打印机打印文档?
ShellExecute(this->m_hWnd,”print”,
“c:\\abc.txt”,”",”", SW_HIDE);
Q: 如何用系统查找功能来查找指定文件?
ShellExecute(m_hWnd,”find”,”d:\\nish”,
NULL,NULL,SW_SHOW);
Q: 如何启动一个程序,直到它运行结束?
SHELLEXECUTEINFO ShExecInfo = {0};
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb = NULL;
ShExecInfo.lpFile = “c:\\MyProgram.exe”;
ShExecInfo.lpParameters = “”;
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow = SW_SHOW;
ShExecInfo.hInstApp = NULL;
ShellExecuteEx(&ShExecInfo);
WaitForSingleObject(ShExecInfo.hProcess,INFINITE);
或:
PROCESS_INFORMATION ProcessInfo;
STARTUPINFO StartupInfo; //This is an [in] parameter
ZeroMemory(&StartupInfo, sizeof(StartupInfo));
StartupInfo.cb = sizeof StartupInfo ; //Only compulsory field
if(CreateProcess(“c:\\winnt\\notepad.exe”, NULL,
NULL,NULL,FALSE,0,NULL,
NULL,&StartupInfo,&ProcessInfo))
{
WaitForSingleObject(ProcessInfo.hProcess,INFINITE);
CloseHandle(ProcessInfo.hThread);
CloseHandle(ProcessInfo.hProcess);
}
else
{
MessageBox(“The process could not be started…”);
}
Q: 如何显示文件或文件夹的属性?
SHELLEXECUTEINFO ShExecInfo ={0};
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_INVOKEIDLIST ;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb = “properties”;
ShExecInfo.lpFile = “c:\\”; //can be a file as well
ShExecInfo.lpParameters = “”;
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow = SW_SHOW;
ShExecInfo.hInstApp = NULL;
ShellExecuteEx(&ShExecInfo);
C++ Builder VCL库函数简介 September 30, 2007
一.BORLAND C++ BUILDER VCL的内存管理函数
1. AllocMem
在队中分配指定字节的内存块,并将分配的每一个字节初始化为 0.函数原型如下:
void * __fastcall AllocMem(Cardinal Size);
2. SysFreeMem
释放所指定的内存块.函数原型如下:
int __fastcall SysFreeMem(void * P);
3. SysReallocMem
要求重新分配参数Size所指定的内存.函数原型如下:
void * __fastcall SysReallocMem(void * P , int Size); 二.Borland C++ Builder VCL的文件操作函数
1. FileOpen
打开指定的文件,如果返回为正数,表示操作成功,返回值为文件句柄:如果返回值为-1,表示操作失败,函数原型如下:
int __fastcall FileOpen(const System::AnsiString FileName,int Mode);
2. FileCreate
以指定的文件名称创建一个新的文件,如果返回为正数,表示操作成功,返回值为文件句柄,如果返回值为-1,表示操作失败.函数原型如下:
int __fastcall FileCreate(const System ::AnsiString FileName);
3. FileRead
从文件中读取指定字节的数据到缓冲区中,函数返回实际读取的字节数,函数原型如下;
int __fastcall FileRead(int Handle,void *Buffer,int Count);
4. FileWrite
将缓冲区的数据写入到指定的文件的当前位置中去如果操作成功,函数返回实际写入的字节数,如果返回为-1,则表示操作产生错误,函数原型如下:
int __fastcall FileWrite(int Handle,const void *Buffer,int Count);
5. FileSeek
调整文件指针到新的位置,如果操作成功,则返回新的文件位置,如果操作失败,则函数返回-1,函数原型如下:
int __fastcall FileSeek(int Handle,int Offset,int Origin);
6. FileClose
关闭指定的文件,函数原型如下:
void __fastcall FileClose(int Handle);
7. FileAge
返回指定文件的时间标签,如果操作失败,则返回-1,函数原型如下:
int __fastcall FileAge(const System::AnsiString FileName);
8. FileExists
用于测试指定的文件是否存在,如果存在返回真,否则返回假,函数原型如下:
bool __fastcall FileExists(const System::AnsiString FileName);
9. FileGetDate
返回指定文件的DOS时间标签,如果操作失败,则近回-1,函数原型如下:
int __fastcall FileGetDate(int Handle);
10.FileSetDate
更改指定文件的DOS时间标签,如果操作成功,返回0,否则返回错误代码,函数原型如下:
int __fastcall FileSetDate(int Handle,int Age);
11.FileGetAttr
返回指定文件的属性,如果操作失败,则函数返回-1,函数原型如下;
int __fastcall FileGetAttr(const System::AnsiString FileName);
12.FileSetAttr
更改指定文件的属性参数,如果操作成功,则返回0,函数原型如下;
int __fastcall FileSetAttr(const System::AnsiString FileName,int Attr);
13.FindFirst
在指定的文件目录内,搜寻符合特定属性参数的文件,如果成功地查找到符合条件的文件,
则函数返回0,否则函数返回一个错误代码,函数原型如下:
int __fastcall FindFirst(const System::AnsiString Path,int Attr,TSearchRec &;F);
14.FindNext
继续搜寻FindFirst所指定属性参数的文件,如果成功地查找到符合条件的文件,则函数返回0,否则函数返回一个错误代码,函数原型如下:
int __fastcall FindNext(TSearchRec &;F);
15.FindClose
释放FindFirst操作所申请的内存资源,函数原型如下:
void __fastcall FindClose(TSearchRec &;F);
16.DeleteFile
在计算机磁盘中删除指定的文件,如果操作成功,则函数返回真,函数原型如下:
bool __fastcall DeleteFile(const AnsiString FileName);
17.RenameFile
更改指定文件的名称,如果操作成功,则函数返回真,函数原型如下:
bool __fastcall RenameFile(const AnsiString OldName, const AnsiString NewName);
18.ChangeFileExt
更改指定文件的扩展名,函数原型如下:
AnsiString __fastcall ChangeFileExt(const AnsiString FileName,const AnsiString Extension);
19.ExtractFilePath
返回指定文件的工作路径,函数原型如下:
AnsiString __fastcall ExtractFilePath(const AnsiString FileName);
20.ExtractFileDir
返回指定文件的工作目录,函数原型如下:
AnsiString __fastcall ExtractFileDir(const AnsiString FileName);
21.ExtractFileDrive
返回指定文件的驱动器,函数原型如下:
AnsiString __fastcall ExtractFileDrive(const AnsiString FileName);
22.ExtractFileName
返回指定文件的文件名及扩展名,函数原型如下:
AnsiString __fastcall ExtractFileName(const AnsiString FileName);
23.ExtractFileExt
返回指定文件的扩展名,函数原型如下:
AnsiString __fastcall ExtractFileExt(const AnsiString FileName);
三,Borland C++ Builder VCL的磁盘管理函数
1. DiskFree
返回指定磁盘的剩余空间,如果操作成功,返回剩余磁盘空间,如果操作失败,则返回-1,函数原型如下:
int __fastcall DiskFree(Byte Drive);
2. DiskSize
返回指定磁盘的空间,如果操作成功,返回磁盘空间,如果操作失败,则返回-1,函数原型如下:
int __fastcall DiskSize(Byte Drive);
3. GetCurrentDir
返回当前工作目录,函数原型如下:
AnsiString __fastcall GetCurrentDir();
4. SetCurrentDir
设置当前工作目录,如果操作成功,则返回真,函数原型如下:
bool __fastcall SetCurrentDir(const AnsiString Dir);
5. CreateDir
创建新的目录,如果操作成功,返回真,否则返回假,函数原型如下:
bool __fastcall CreateDir(const AnsiString Dir);
6. RemoveDir
删除指定的目录,如果操作成功,返回真,否则返回假,函数原型如下:
bool __fastcall RemoveDir(const AnsiString Dir); 四.Borland C++ Builder VCL的字符串函数
1. UpperCase
将指定的AnsiString字符串转换为大写形式,函数原型如下:
AnsiString __fastcall UpperCase(const AnsiString S);
2. LowerCase
将指定的AnsiString字符串转换为小写形式,函数原型如下:
AnsiString __fastcall LowerCase(const AnsiString S);
3. CompareStr
比较两个AnsiString字符串,函数原型如下:
int __fastcall CompareStr(const AnsiString S1, const AnsiString S2);
4. CompareText
比较两个AnsiString字符串,函数原型如下:
int __fastcall CompareText(const AnsiString S1, const AnsiString S2);
5. StrLen
返回字符串的长度,函数原型如下:
Cardinal __fastcall StrLen(const char * Str);
6. StrEnd
返回字符串结尾指针,函数原型如下:
char * __fastcall StrEnd(const char * Str);
7. StrMove
从源字符串向目的字符串拷贝指定数目的字符,函数原型如下:
char * __fastcall StrMove(char * Dest, const char * Source, Cardinal Count);
8. StrCopy
将源字符串拷贝到目的字符串中,函数原型如下:
char * __fastcall StrCopy(char * Dest, const char * Source);
9. StrECopy
将源字符串拷贝到目的字符串中,并返回目的字符串结尾指针,函数原型如下:
char * __fastcall StrECopy(char * Dest, const char * Source);
10.StrLCopy
将源字符串指定数目的字符拷贝到目的字符串中,并返回目的字符串指针,函数原型如下:
char * __fastcall StrLCopy(char * Dest, const char * Source, Cardinal MaxLen);
11.StrPCopy
将AnsiString类型的源字符串拷贝到目的字符串中,并返回目的字符串指针,函数原型如下:
char * __fastcall StrPCopy(char * Dest, const AnsiString Source);
12.StrPLCopy
将源字符串(AnsiString类型)指定数目的字符拷贝到目的字符串中,并返回目的字符串
指针,函数原型如下:
char * __fastcall StrPLCopy(char * Dest, const AnsiString Source, Cardinal MaxLen);
13.StrCat
连接两个字符串,并返回目的字符串指针,函数原型如下:
char * __fastcall StrCat(char * Dest, const char * Source);
14.StrLCat
将指定数目的源字符串连接到目的字符串,并返回目的字符串指针,函数原型如下:
char * __fastcall StrLCat(char * Dest, const char * Source, Cardinal MaxLen);
15.StrComp
两个字符串相到比较,返回比较的结果,函数原型如下:
int __fastcall StrComp(const char * Str1, const char * Str2);
16.StrIComp
两个字符串相互比较(不论大小写),返回比较的结果,函数原型如下:
int __fastcall StrIComp(const char * Str1, const char * Str2);
17.StrLComp
对两个字符串指定数目的字符进行比较操作,函数原型如下:
int __fastcall StrLComp(const char * Str1, const char * Str2, Cardinal MaxLen);
18.StrScan
在指定的字符串中寻找特定的字符,并返回字符串中第一个特定字符的指针,函数原型如下:
char * __fastcall StrScan(const char * Str, char Chr);
19.StrRScan
在指定的字符串中寻找特定的字符,并返回字符串中最后一个特定字符的指针,函数原型如下:
char * __fastcall StrRScan(const char * Str, char Chr);
20.StrPos
在Strl所指定的字符串中寻找Str2所指定的子字符串,并返回Str2在Str2中第一个子字符的指针,函数原型如下:
char * __fastcall StrPos(const char * Str1, const char * Str2);
21.StrUpper
将字符串转换为大写形式,函数原型如下:
char * __fastcall StrUpper(char * Str);
22.StrLower
将字符串转换为小写形式,函数原型如下:
char * __fastcall StrLower(char * Str);
23.StrPas
将指定的字符串转换为AnsiString类型字符串对象,函数原型如下:
AnsiString __fastcall StrPas(const char * Str);
24.StrAlloc
为字符串分配指定字节的内存,并返回内存指针,函数原型如下:
char * __fastcall StrAlloc(Cardinal Size);
25.StrBufSize
返回*Str所指向内存的大小,函数原型如下:
Cardinal __fastcall StrBufSize(const char * Str);
26.StrNew
在堆中为指定字符串分配空间,并将字符串拷贝到此空间中,函数原型如下:
char * __fastcall StrNew(const char * Str);
五.Borland C++ Builder VCL的数值转换函数
1. IntToStr
将整数转换为AnsiString字符串,函数原型如下:
AnsiString __fastcall IntToStr(int Value);
2. IntToHex
将整数转换为十六进制字符串,函数原型如下:
AnsiString __fastcall IntToHex(int Value, int Digits);
3. StrToInt
将AnsiString字符串转换为整数值,如果不能进行转换,则产生EConvertError异常,
函数原型如下:
int __fastcall StrToInt(const AnsiString S);
4. StrToIntDef
将AnsiString字符串转换为一个数值,函数原型如下:
int __fastcall StrToIntDef(const System::AnsiString S,int Default);
5. FloatToStr
将浮点数转换为AnsiString字符串,函数原型如下:
AnsiString __fastcall FloatToStr(Extended Value);
6. StrToFloat
将AnsiString字符串转换为一个浮点数值,函数原型如下:
Extended __fastcall StrToFloat(const AnsiString S);
7. FloatToStrF
将浮点数转换为指定格式的AnsiString字符串,函数原型如下:
AnsiString __fastcall FloatToStrF(Extended Value, TFloatFormat Format,int Precision, int Digits); 六.Borland C++ Builder VCL的时间函数
1. Date
返回TDateTime对象,包含当前的年月日信息,函数原型如下:
System::TDateTime __fastcall Date(void);
2. Time
返回TDateTime对象,包含当前的时间信息,函数原型如下:
System::TDateTime __fastcall Time(void);
3. Now
返回TDateTime对象,获取当前的日期和时间信息,函数原型如下:
System::TDateTime __fastcall Now(void);
4. DatetimeToString
将TDateTime对象转换为指定格式的字符串对象,函数原型如下:
void __fastcall DateTimeToString(AnsiString &;Result, const AnsiString Format,System::TDateTime DateTime);
5. DateToStr
将TDateTime对象(包含当前年月日信息)转换为字符串对象,函数原型如下:
AnsiString __fastcall DateToStr(System::TDateTime Date);
6. TimeToStr
将当前日期转换为字符串对象,函数原型如下:
AnsiString __fastcall TimeToStr(System::TDateTime Time);
7. DateTimetoStr
将TDateTime对象转换为字符串对象,函数原型如下:
AnsiString __fastcall DateTimeToStr(System::TDateTime DateTime);
8. StrToDate
将字符串对象转换为年月日对象,函数原型如下:
System::TDateTime __fastcall StrToDate(const AnsiString S);
9. StrToTime
将字符串对象转换时间对象,函数原型如下:
System::TDateTime __fastcall StrToTime(const AnsiString S);
10.StrToDateTime
将字符串对象转换为年月日时间对象,函数原型如下:
System::TDateTime __fastcall StrToDateTime(const AnsiString S);
11.DateTimeToSystemTime
将TDateTime对象转换为操作系统时间,函数原型如下:
void __fastcall DateTimeToSystemTime(System::TDateTime DateTime, _SYSTEMTIME &;SystemTime);
12.SystemTimeToDateTime
将操作系统时间转换为TDateTime对象,函数原型如下:
System::TDateTime __fastcall SystemTimeToDateTime(const _SYSTEMTIME &;SystemTime);
怎样用QR实现以下报表? September 26, 2007
这个问题只要你查找BCB安装后带的帮助Quick reports Help内的Quick Report User guide内的Creating groups就可以找到答案,基本操作是这样的。
1.到QuickReport标签内,添加一个report,添加一个QRGroup,这个QRGroup是一个GroupHeader,设置report的数据源。
2.添加一个Detail区域用来显示你的中间数据。
3.添加一个QRBand,设置1(GroupHeader)的FooterBand属性为这个区,这个区是用来显示分组的合计的。
4.你是按照品名分组的,设置1(GroupHeader)的expression属性为你的结果集中对应品名的字段,假设是:fruitKind。这样就会自动分组,可以把这个GroupHeader的宽度拖得小一些,甚至为0。
5.添加总计:在3(FooterBand)内添加一个QRtext,将它的caption写为总计,添加一个QXExpr(奶奶的,我找了很长时间才看懂原文),就是有E=mc2的那个东西,它也有一个expression属性,将它设为Count(amount)或Count(price),当然根据你的数据集来改写括号内的字段了,OK,运行把。
6.别看了,给分吧。
对了,忘了5有一个属性ResetAfterPrint属性设为true,不然就累加了
dbexpress vendor initialization failed August 9, 2007
缺少dbxdrivers.ini和dbxconnections.ini,从其他版本先复制过来
http://www.2ccc.com/idea.asp?articleid=4265
| 下载按照方法安装修改dbxdrivers.ini,却不能使用,经过多次试验终于成功,具体安装方法如下: 1. 先在 X:\Program Files\Common Files\Borland Shared\DBExpress(X代表盘符)找到 dbxdrivers.ini和dbxconnections.ini两个文件; 2. 修改这两个文件: ① 修改dbxdrivers.ini,加上这段: [MSSQL] [MSSQL TransIsolation] [MSSQLConnection] 如果你的INI文件里有这段代码,认真对比后修改不同的地方就好。 |
|
| qiu888 30487 | 2007-7-23 1:27:38 |
| 补充,修改dbxconnections.ini,应该是这样:[MSSQLConnection] DriverName=MSSQL HostName= DataBase= User_Name= Password= BlobSize=-1 ErrorResourceFile= LocaleCode=0000 MSSQL TransIsolation=ReadCommited OS Authentication=False |
|
| tintin1943 30490 | 2007-7-23 9:13:36 |
| 非常感谢楼主的无私奉献。 请问还有没有For Oracle和其他的驱动? 或者在哪里搜索,能否给个提示? 谢谢 |
|
| yhhe 30491 | 2007-7-23 9:54:37 |
| 和最新版之间的差距,可惜找不到免费最新版本4.00.2 12-Jul-07 Complete support for dbExpress version 4 in Delphi 2007 for Win32 and C++Builder 2007 added Added support for SQL Server Compact Edition Support for new SQL Server data types, including XML, VARCHAR(MAX), NVARCHAR(MAX), VARBINARY(MAX) added General performance improved 3.20.10 04-May-07 3.10.8 06-Dec-06 3.10.7 31-Oct-06 3.10.6 04-Sep-06 3.00.5 07-Jul-06 3.00.4 14-Apr-06 3.00.3 28-Feb-06 3.00.2 07-Feb-06 3.00.1 03-Feb-06 2.50.7 12-Oct-05 2.50.6 04-Aug-05 2.50.5 29-Mar-05 |
|
| lhb 30492 | 2007-7-23 10:45:06 |
| 难道delphi2007带的DBExpress不是新版本的!?? | |
| laimama_1 30543 | 2007-7-26 19:19:58 |
| 感谢qiu888,我的dbxdrivers.ini中已经有了后面的[MSSQLConnection]段内容了,我应该全部放到说明中的,对不起!让大家走弯路了。 另外:lhb朋友,delphi自带的驱动是免费的,但是问题很多。这个驱动是商业驱动,要M的,我找了好久才找到。(现在我也不敢保证还能在其它地方找到了)。 |
|
| tintin1943 30627 | 2007-8-3 8:56:20 |
| 我昨天一天找不到for Oracle,非常遗憾。 不过,非常感谢楼主,先收藏。 |
|