急,在线等(如何在客户端动态输入服务器端数据库的密码???)

c12916 2003-04-29 09:28:01
我想通过带有密码的数据库(例如Paradox)来保存用户信息
但如何实现在客户端对数据库的访问(动态传输密码???)
...全文
54 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
houzy123 2003-05-09
  • 打赏
  • 举报
回复
STDMETHODIMP Tsample_remote_dataImpl::get_opr_password1(BSTR user,
BSTR password)
{
AnsiString use,pass;
use=user;
pass=password;
try
{
m_DataModule->Database1->Close();
m_DataModule->Database1->Params->Values["USER"]=use;
m_DataModule->Database1->Params->Values["PASSWORD"]=pass;
m_DataModule->Database1->Open();
}
catch(Exception &e)
{
return Error("后台數據庫SQL SERVER用戶和密碼戶重新設置",IID_Isample_remote_data);
//return Error(e.Message.c_str(),IID_Ipacking_data_server);
}
return S_OK;
}
houzy123 2003-05-09
  • 打赏
  • 举报
回复
你这个问题的分太少了
我刚做的例子,已经运行通过
houzy123 2003-05-09
  • 打赏
  • 举报
回复

也可以说如何在服务器端设置一个变量,在服务器端给他动态的付值。
这句是可行的,我用临时表,也就是一个动态变量,如果用户名称和密码发生变更,则在server的临时表上修改即可
若不明白,拿我的例子看看,但要你的email我好传给你
c12916 2003-05-07
  • 打赏
  • 举报
回复
houzy123
非常感谢你的解答,
我还有一个关键的问题不明白?
如何在客户端的软件上把密码发送到服务器端的数据库上。
如你所说:
m_DataModule->Database1->Close();
m_DataModule->Database1->Params->Values["USER"]=Form->user_password->FieldByName("user")->AsString;
m_DataModule->Database1->Params->Values["PASSWORD"]=Form->user_password->FieldByName("password")->AsString;
m_DataModule->Database1->Open();
其中这一条语句 m_DataModule->Database1->Params->Values["PASSWORD"]=Form->user_password->FieldByName("password")->AsString;

如何把Form->user_password->FieldByName("password")->AsString用客户端的数据代替。能否把Form->user_password->FieldByName("password")->AsString用一个变量代替。
也可以说如何在服务器端设置一个变量,在服务器端给他动态的付值。

期待着您的答复!!!
谢谢!!!
c12916 2003-05-05
  • 打赏
  • 举报
回复
如果服务器端有一个paradox数据库mm.db
打开密码为:12345
如何在客户端实现本地数据库的如下功能:
Session->AddPassword(12345); //12345为打开该数据库的密码
Table->Active=true;
我已经等了好几天了,希望大家能够帮助我!!!!
houzy123 2003-05-01
  • 打赏
  • 举报
回复
我来帮你解决,好晚了,回答完,go back
如果你是c/s结构,你在sql 2k上只建一个用户例如sa,password='1234567'
1.你在server程序的form上,加一个dbgrid和一个clientdataset,clientdataset开启的是临时表user_password.cds,此临时表含两个字段user和password,录入用户名和密码('sa','1234567')
2.在server程序*.tlb上增加一个方法get_opr_password此方法不用参数
3.在server程序的数据模板上添加一个database控件,Database1设置数据库名称,所有的query和table等全部将其databasename设置为Database1所设置的数据库名称
4.在server程序的数据*impl.cpp上找到get_opr_password涵数,添加如下代码
STDMETHODIMP T*Impl::get_opr_password()
{

try
{
m_DataModule->Database1->Close();
m_DataModule->Database1->Params->Values["USER"]=Form->user_password->FieldByName("user")->AsString;
m_DataModule->Database1->Params->Values["PASSWORD"]=Form->user_password->FieldByName("password")->AsString;
m_DataModule->Database1->Open();
}
catch(Exception &e)
{
return Error("后台數據庫SQL SERVER用戶和密碼戶重新設置",IID_Ipacking_data_server);
//return Error(e.Message.c_str(),IID_Ipacking_data_server);
}
return S_OK;
}

5.在client程序处理
#include "*_TLB.h"

void __fastcall Tpacking_dm::link_packing_remote(AnsiString server_name)
{
I*Disp remote_disp;
packing_connect->Connected=false;
packing_connect->ComputerName=server_name;
try
{
packing_connect->Connected=true;
}
catch(...)
{
packing_connect->Connected=false;
Application->MessageBox("數據連接失敗","提示",MB_OK);
}
if(packing_connect->Connected)
{
try
{
remote_disp.Bind(packing_connect->GetServer());
remote_disp->get_opr_password();

mysql2kdata->Open();
}
catch(Exception &ex)
{
throw;
}
}
}
//-------------------------------------
此方法让客户端用户不知道sql 2k用户名称和密码的情况下使用程序
你可以另建一个数据表验证你的用户名称和密码,前面有人提示过
c12916 2003-04-30
  • 打赏
  • 举报
回复
急急急!!!高手在哪里
dolphin2001 2003-04-30
  • 打赏
  • 举报
回复
1.把Table及DataSource设置好,指向该数据库,Table的Active为false;

2.添加Session->AddPassword(12345); //12345为打开该数据库的密码

Table->Active=true; //就可以打开该表了

3.移去密码:Session->RemovePassword(12345);
invalid 2003-04-30
  • 打赏
  • 举报
回复
把TDataBase的LoginPrompt设置为true。到连接的时候就会提示客户输入密码
c12916 2003-04-30
  • 打赏
  • 举报
回复
楼上的办法在本地数据库中可以实现.如果打开的是服务器中的数据库怎么办???
我用的是DCOM.
warton 2003-04-30
  • 打赏
  • 举报
回复
不太明白你的动态密码?
你可以再增加一个用户密码表,这个表中就保存一些用户的密码,先访问这个表,然后....
c12916 2003-04-29
  • 打赏
  • 举报
回复
请高手帮忙阿!!!
c12916 2003-04-29
  • 打赏
  • 举报
回复
能否给出代码!谢谢
neelee 2003-04-29
  • 打赏
  • 举报
回复
动态建立连接串

1,316

社区成员

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

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