【XE5-IndyDB -2】 IndyDB 服务器

来源:互联网 发布:playclubsaber捏脸数据 编辑:程序博客网 时间:2024/04/28 05:57

本次提供的服务器是测试版本(win32),文件名是:IndyDBServer.exe

 

 

配置完成后,请点击【启动】。

 

1、目标数据库连接字符串:必须配置,请点击后面的按钮进行配置。

 

2、用户认证库:可选择的,是一个DLL文件。

 

如果未选择,用户登录总是成功的,修改口令总是失败的。

 

如果要选择,这个用户认证库应该这样写:

 

#include <vcl.h>#include <windows.h>#include <System.Classes.hpp>#include <Data.DB.hpp>#include <Data.Win.ADODB.hpp>#pragma hdrstop//---------------------------------------------------------------------------extern "C" __declspec(dllexport)BOOL __stdcall TCPDB_LoginVerify(TADOQuery * AQuery,TParams * AParams, TGetStrProc ACollback);extern "C" __declspec(dllexport)BOOL __stdcall TCPDB_ChangePassword(TADOQuery * AQuery,TParams * AParams, String AAskUser, TGetStrProc ACollback);//---------------------------------------------------------------------------#pragma argsused//---------------------------------------------------------------------------int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved){return 1;}//---------------------------------------------------------------------------BOOL __stdcall TCPDB_LoginVerify(TADOQuery * AQuery, TParams * AParams, TGetStrProc ACollback){BOOL AStatus = false;String AMessage;String AToken = AParams->ParamValues["Token"];String AUsername = AParams->ParamValues["Username"];String APassword = AParams->ParamValues["Password"];try{try{AQuery->SQL->Clear();//============================//  在这里写上用户登录查询语句。//============================AQuery->Open();if (!AQuery->Eof){//============================//  在这里写上用户登录验证。//  别忘记登录成功时,设 AStatus = true;//============================}else AMessage = "登录名不存在!";}__finally{AQuery->Close();}}catch ( Exception &E ){AMessage = "ERROR : " + E.Message;}catch (...){AMessage = "ERROR : Unknown";}if (ACollback)if (AMessage.Length())ACollback(AMessage);return AStatus;}//---------------------------------------------------------------------------BOOL __stdcall TCPDB_ChangePassword(TADOQuery * AQuery, TParams * AParams,String AAskUser, TGetStrProc ACollback){BOOL AStatus = false;String AMessage;String AToken = AParams->ParamValues["Token"];String AUsername = AParams->ParamValues["Username"];String APassword = AParams->ParamValues["Password"];//============================//  在这里写上用户登录查询语句。//  AAskUser 是当前请求修改 AUsername 口令的用户,可能是他本人,也可能是他的管理员。//  APassword 是新口令。//============================try{try{AQuery->SQL->Clear();//============================//  在这里写上用户名查询语句。//============================AQuery->Open();if (!AQuery->Eof){//============================//  在这里写上检查用户登录验证。//  别忘记修改成功时,设 AStatus = true;//============================}else AMessage = "用户名不存在!";}__finally{AQuery->Close();}}catch ( Exception &E ){AMessage = "ERROR : " + E.Message;}catch (...){AMessage = "ERROR : Unknown";}if (ACollback)if (AMessage.Length())ACollback(AMessage);return AStatus;}//---------------------------------------------------------------------------


自动开启端口服务:当启动了端口后,会将配置参数保存到同一路径下的 IndyDBServer.ini 文件中。

当再次打开窗口时,会调用这些已经配置的参数,当此选项选中时,立刻启动端口服务。

 

原创粉丝点击