gpt4 book ai didi

delphi - 在 Delphi 中使用 Interbase Api

转载 作者:行者123 更新时间:2023-12-03 18:32:35 26 4
gpt4 key购买 nike

这是我将用户添加到 Interbase 安全数据库的 Delphi 代码

uses 
IBHeader,IBExternals

var
Form7: TForm7;
userData: TUserSecData;
userDataPtr: PUserSecData;
status: array[0..19] of ISC_STATUS;
isc_status: PISC_STATUS;

procedure TForm7.Create_UserClick(Sender: TObject);
begin
{ setup isc_status pointer }
isc_status :=@status;
{ setup user data pointer to point to user data structure }
userDataPtr :=@userData;
{ setup user data structure }
userData.user_name :='aseem';

userData.password :='xxxxxxx';

userData.protocol :=sec_protocol_local;

userData.dba_user_name :='SYSDBA';

userData.dba_password :='xxxxxxx'; { Don_t hardcode this }

userData.first_name :='asa';

userData.last_name :='sad';

userData.sec_flags :=sec_password_spec or sec_dba_user_name_spec or
sec_dba_password_spec or sec_first_name_spec or sec_last_name_spec;

{ add user to security database }
isc_add_user(isc_status,userDataPtr);

end;

但是有一个错误,例如

isc_add_user(isc_status,userDataPtr);

function is not found in IBheader.pas,IBExternals



你能告诉我这段代码有什么问题吗?

我正在使用 Delphi 2007 专业版,并且正在使用 CodeGear 内源文件夹中的 IBheader.pas、IBExternals.pas 文件。

最佳答案

您可能希望使用 IBIntf.pas 中定义的接口(interface):

uses IBHeader, IBExternals, IBIntf;

procedure TMyForm.RegisterNewUser;
var
status: ISC_STATUS;
status_vector: array[0..19] of ISC_STATUS;
user_sec_data: UserSecData;
gds: IGDSLibrary;
begin
//setup the user info and then
...
//call the function
gds := GetGDSLibrary;
gds.LoadLibrary;
try
status := gds.isc_add_user(@status_vector[0], @user_sec_data);
//check the status and act accordingly
finally
gds.FreeLibrary;
end;
end;

或者您可能希望通过调用它的 AddUser 方法来使用 TIBSecurityService,它是 IBX 的一部分,提供您正在使用的 header 的同一个库。

或者,在现代 Interbase 中,您可能只想执行 CREATE USER执行该操作的 SQL 语句。

关于delphi - 在 Delphi 中使用 Interbase Api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13928432/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com