求救:为什么我用BDE做数据库的CGI程序,当系统WINXP的NTFS结构的时候无法想数据库写数据,而用FAT32结构的就可以呢??

woainihaha 2003-02-17 02:18:56
系统为WINXP+SP1+IIS
需要代码的话,请提出!
...全文
58 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
BCB 2003-02-20
  • 打赏
  • 举报
回复
有点小同感!
我在家里是win98+pws+bcb+bde isapi,在家好好的,
到厂里是win2000server+iis+bcb+bde,我记得也是好好的,
过了一段时间就是不行了,也不知是不是因为sql2000server
打了补丁造成的,调试发现是Table1->Open()出错,怪了,
在IDE下,是可以打开库的,在web中就打开不了,
后来用ADO打开库成功了,我马上全改成ADO了,慢就慢点,
可靠很重要







warton 2003-02-20
  • 打赏
  • 举报
回复
!!???
woainihaha 2003-02-20
  • 打赏
  • 举报
回复
谢谢各位,问题我已经解决!
叶子哟 2003-02-17
  • 打赏
  • 举报
回复
还真没试过!?
woainihaha 2003-02-17
  • 打赏
  • 举报
回复
我也一直是这样认为的,所以才会折腾了这么长时间!!!
数据库采用的是BDE默认的数据库,如果是权限问题,通常CGI访问数据库该怎么设置系统权限呢??这方面我是个白痴呀!!:)
应该不是数据库设置的问题,我全部用的是独立的表,而且访问可以,只是在NTFS结构的时候不能写入新的数据.我以前也认为是权限问题,可不知道该怎么设置~!
myy 2003-02-17
  • 打赏
  • 举报
回复
我认为 90% 与FAT32、NTFS无关的,你再看看别的地方,比如数据库的设置,磁盘空间......等。
woainihaha 2003-02-17
  • 打赏
  • 举报
回复
我家里的机子是FAT32,办公室的是NTFS,每回都是在家好好的,到了公司就说500服务器内部错误.
半年了,我到现在才发现是这的错误,一直没想到!!害的我扣了几K的奖金!!!:(
woainihaha 2003-02-17
  • 打赏
  • 举报
回复
这是一个最简单的例子:

//---------------------------------------------------------------------------
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TWebModule1 *WebModule1;
//---------------------------------------------------------------------------
__fastcall TWebModule1::TWebModule1(TComponent* Owner)
: TWebModule(Owner)
{
ExePath = ExtractFilePath(ParamStr(0));
}
//---------------------------------------------------------------------------

void __fastcall TWebModule1::WebModule1WebActionItem1Action(
TObject *Sender, TWebRequest *Request, TWebResponse *Response,
bool &Handled)
{

Query1->DatabaseName=ExePath+"Data\\";

Table1->DatabaseName=ExePath+"Data\\";

AnsiString UserName = Request->ContentFields->Values["yourname"];
AnsiString KeyWords = Request->ContentFields->Values["yourkey"];

//Get max number
Query1->SQL->Clear();
Query1->SQL->Add("select max(POrder) as field_max from word.db");
Query1->Open();
max=Query1->FieldByName("field_max")->AsInteger;
Query1->Close();

//Get htm module files
Query1->SQL->Clear();

Query1->SQL->Add("select htm from module.db where MName='passkey'");

Query1->Open();
AnsiString temp=Query1->FieldByName("htm")->AsString;
Query1->Close();

//Check password
Query1->SQL->Clear();
AnsiString tempword = "select * from word.db where username='";
tempword +=UserName;
tempword +="'";
Query1->SQL->Add(tempword);
Query1->Open();

bool passed=false;

if (Query1->RecordCount>0)
{
if (Query1->FieldByName("password")->AsString==KeyWords) passed=true;
}

Query1->Close();

//Response text
Search="<br><P align=";
Search+='"';
Search+="center";
Search+='"';

Search+="><font size=";
Search+='"';
Search+="+2";
Search+='"';
Search+=">";

//Response title
if (passed)
{
Search+="信息提交成功";
}
else
{
Search+="<br>";
Search+="用户名或密码错误";
}

Search+="</font></P>";

Search+="<P align=";
Search+='"';
Search+="center";
Search+='"';

Search+="><font size=";
Search+='"';
Search+="+1";
Search+='"';
Search+=">";

//Response message
if (passed)
{
Search+="您的信息提交成功,请退出本窗口。";
}
else Search+="请退出本窗口,重新输入用户名和密码!";

Search+="</font>";

Search+="</p>";

//Save the request
if (passed)
{
PostRec(Request->ContentFields->Values["title"],
Request->ContentFields->Values["title2"],
max+1);
}

//Server response
PageProducer1->HTMLDoc->Text=temp;
Response->Content=PageProducer1->Content();

}
//---------------------------------------------------------------------------

void __fastcall TWebModule1::PageProducer1HTMLTag(TObject *Sender,
TTag Tag, const AnsiString TagString, TStrings *TagParams,
AnsiString &ReplaceText)
{

if (CompareText(TagString,"Title")==0)
ReplaceText=Search;
}
//---------------------------------------------------------------------------

void __fastcall TWebModule1::PostRec(AnsiString title, AnsiString title2, int InputNum)
{

Table1->TableName = "word.db";

Table1->Active = true;

Table1->Append();

Table1->FieldValues["POrder"] = InputNum;
Table1->FieldValues["username"] = title;
Table1->FieldValues["password"] = title2;

Table1->Post();
Table1->Active=false;

}
//---------------------------------------------------------------------------

//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <SysUtils.hpp>
#include <Classes.hpp>
#include <HTTPApp.hpp>
#include <HTTPProd.hpp>
#include <DB.hpp>
#include <DBTables.hpp>
#include <ADODB.hpp>
//---------------------------------------------------------------------------
class TWebModule1 : public TWebModule
{
__published: // IDE-managed Components
TPageProducer *PageProducer1;
TQuery *Query1;
TTable *Table1;
void __fastcall WebModule1WebActionItem1Action(TObject *Sender,
TWebRequest *Request, TWebResponse *Response, bool &Handled);
void __fastcall PageProducer1HTMLTag(TObject *Sender, TTag Tag,
const AnsiString TagString, TStrings *TagParams,
AnsiString &ReplaceText);
private: // User declarations
String Search;
AnsiString ExePath;

int max;

void __fastcall PostRec(AnsiString title, AnsiString title2, int InputNum);


public: // User declarations
__fastcall TWebModule1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TWebModule1 *WebModule1;
//---------------------------------------------------------------------------
#endif

woainihaha 2003-02-17
  • 打赏
  • 举报
回复
应该不是吧,我把代码给你,帮我看看好吗?
myy 2003-02-17
  • 打赏
  • 举报
回复
权限问题?
woainihaha 2003-02-17
  • 打赏
  • 举报
回复
分不够,可以再加呀!!!!
能解决问题就好!!!
woainihaha 2003-02-17
  • 打赏
  • 举报
回复
各位大侠快帮帮忙呀!!!!!!!!!

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧