var
iFileHandle: Integer;
ConnectionStr:WideString;
begin
ConnectionStr:=SPSADOConnection.ConnectionString; //把数据库连接字符串值赋给connectstr
if FileExists('Config.dat') then
DeleteFile('Config.dat'); iFileHandle:=FileCreate('Config.dat');
if FileWrite(iFileHandle,ConnectionStr,//我想错误是不是因为ConnectionStr是var,而filewrite的第二个参数是const?
Length(SPSADOConnection.ConnectionString))=-1 then
.....................请教一下各位,很急的!
iFileHandle: Integer;
ConnectionStr:WideString;
begin
ConnectionStr:=SPSADOConnection.ConnectionString; //把数据库连接字符串值赋给connectstr
if FileExists('Config.dat') then
DeleteFile('Config.dat'); iFileHandle:=FileCreate('Config.dat');
if FileWrite(iFileHandle,ConnectionStr,//我想错误是不是因为ConnectionStr是var,而filewrite的第二个参数是const?
Length(SPSADOConnection.ConnectionString))=-1 then
.....................请教一下各位,很急的!
解决方案 »
- delphi中关于标签页中根据数据条数新增同样窗口的问题!
- TADOQuery + MsSQL Server2000,CPU占用100%的问题
- 声明动态库函数,调用总是不成功,应该是那里的问题。望大家帮助。在线等。
- 请问DELPHI中画图函数名称?
- 请教Access 2000数据库与SQL 2000数据库有什么区别?
- Delphi7中使用DsoFramer时包错: Invalid variant Type,求助
- 如何正确得到.scr文件名的有趣问题
- 请问那位知道如何将Delphi中的指针型变量转成字符串变量!
- 函数声明
- ADO Jet 4.0的ADOX.Catalog与JRO.JetEngine还有其它什么功能?
- HTML HELP的制作
- 请问哪有flat风格的PageControl控件?
因为第二个参数是buffer啊,其实就是要传入一个缓冲区的首地址
我的程序是在以上代码中实现对文件的写,然后另外一段代码实现对文件的读,即读出文件中的字符串,赋到TADOConnection.Connectstring中,如果象你说那样没问题,那说明是在读文件的时候出了问题,代码如下:
var
iFileHandle: Integer;
iFileLength: Integer;
ConnectionStrBuf:PChar;
..........
ConnectionStrBuf:=PChar(AllocMem(iFileLength+1));
FileRead(iFileHandle, ConnectionStrBuf^, iFileLength);
FileClose(iFileHandle);
SPSADOConnection.ConnectionString:= ConnectionStrBuf; showmessage(SPSADOConnection.ConnectionString);//这里发现了只赋了一个字符
..........我想ConnectionStrBuf是PChar型,怎么才能把它的内容赋给一个widestring型?
FileWrite(iFileHandle,ConnectionStr[1],
Length(ConnectionStr)*2);
或
FileWrite(iFileHandle,PChar(ConnectionStr)^,
Length(ConnectionStr)*2);
注意WideString在求长度的时候要乘2,这个不难理解吧?