- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在使用 Firebird 的每个 C 接口(interface)代码程序中,我都传递用户凭据以连接到数据库。如果我不传递这些凭据并直接调用 isc_attach_database()
连接到数据库,它会抛出错误:您的用户名和密码未定义。请您的数据库管理员设置 Firebird 登录。
有没有办法跳过这些或将这些设置为默认设置。我的意思是我想为每个程序连接到数据库而不传递 uname
和 password
。
下面是我用来连接数据库的示例代码。
int main()
{
isc_db_handle db1 = NULL; // Database handle.
isc_tr_handle trans = NULL;//transaction handle
// Allocate some pointers to a dpb (database parameter buffer).
// You use the dpb to talk with the database.
char dpb_buffer[256], *dpb, *p;
short dpb_length;
char *uname; // user-name.
char *upass; // password.
ISC_STATUS status_vector[20]; // Status vector, to monitor connection.
char *str = "/Users/Sumanth/Desktop/NewDB2.fdb";
uname = "SYSDBA";
upass = "masterkey";
dpb = dpb_buffer;
// Specify the version of the parameter buffer, always the
// compile-time constant isc_dpb_version1.
*dpb++ = isc_dpb_version1;
// # of cache buffers to allocate for use with the database,
// default = // 75. In the API guide I think isc_dpb_num_buffers is
//specified as // isc_num_buffers, but that I could not get to work.
*dpb++ = isc_dpb_num_buffers;
*dpb++ = 1;
*dpb++ = 90;
*dpb++ = isc_dpb_user_name; // Save user-name in dpb.
*dpb++ = strlen(uname);
for (p = uname; *p;)
*dpb++ = *p++;
*dpb++ = isc_dpb_password; // Save password in dpb.
*dpb++ = strlen(upass);
for (p = upass; *p;)
*dpb++ = *p++;
dpb_length = dpb - dpb_buffer;
// Attach to the database.
isc_attach_database(status_vector, strlen(str), str, &db1,dpb_length, dpb_buffer);
}
最佳答案
您可以设置环境变量 ISC_USER
和 ISC_PASSWORD
以连接到 Firebird 数据库,而无需在应用程序中指定用户名和密码。参见 Setting The ISC_USER And ISC_PASSWORD Environment Variables .请注意,链接文档仅讨论 SYSDBA
帐户,但它适用于任何帐户。
Helen Borrie 的 The Firebird Book,第 2 版说:
It is possible to set up the two environment variables
ISC_USER
andISC_PASSWORD
on the server, to avoid the need to log in when working with databases locally. You will be able do everything that the named user is allowed to do, without needing to supply credentials each time.
文中提到“在服务器上”,但它实际上是客户端应用程序本地的。
Interbase 6.0 操作指南(可从 Firebird website 获得)说:
If you do not provide a user name and password when you connect to a database or whenyou run utilities such as gbak, gstat, and gfix, InterBase looks to see if the
ISC_USER
andISC_PASSWORD
environment variables are set and uses that user and password as the InterBase user.Although setting these environment variables is convenient, it is strongly notrecommended if security is at all an issue.
关于c - Firebird 数据库连接凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24147048/
我有一个关于 Firebird 客户端和服务器版本的问题。我知道由于 ODS 更改,数据库文件必须与 Firebird 服务器匹配。即 Firebird 建议在服务器版本 2.5.1 和 2.5.2
是否可以使用相同 Firebird 版本的 Firebird Embedded 打开 Firebird 数据库文件?当然,我知道我不能同时通过 FB Embedded 和 FB 打开同一个文件。但在关
首先我读到了这个问题: Firebird database replication 但我不想复制...我只想将数据库上已更改的数据添加到我们的主数据库中。有什么想法吗? 最佳答案 AFAICT 这也是
我同时使用 Firebird 嵌入式和 Firebird 服务器,有时我需要使用如下程序重新索引表: CREATE PROCEDURE MAINTENANCE_SELECTIVITY ASDECLAR
firebird 是否支持事务模式更改?在我看来,MySQL 没有(我说得对吗?)。 最佳答案 我打算发布一个简单的"is",但 Stack Overflow 不接受少于 15 个字符的答案。简而言之
我正在尝试将 Firebird 2.5.1 迁移到 Firebird 3.0 做了什么: 备份 Firebird 2.5.1 在 Firebird 3 上恢复 问题是并不是所有的表都被迁移了;过程、触
我的意思是,即使数据库为空,您也必须删除 varchar(50) 字段并重新创建它以使其成为 varchar(30)。更别说约束了…… 这是非常令人沮丧的。我是 SYSDBA,Firebird 使非常
当我尝试更改 Firebird 中不同所有者的表时,出现此错误: unsuccessful metadata update MODIFY RDB$RELATION_FIELDS failed no p
我有下表 create table LIST_PIPE_TABLE ( ID INT, ITEM VARCHAR(4000), IS_FOLDER VARCHAR
有没有一种快速的方法来列出为数据库定义的所有实际上没有被任何字段使用的 Firebird 域?我有一个包含许多表和许多域的大型数据库,似乎其中很多不再使用,所以我想是时候进行清理了! 我认为这可以通过
我有一个表 t,其中一列是 int 类型,有几行。 我想循环它。当然,我可以为此编写一个选择查询。不过我是学程序的,写了个程序, set term ^; create procedure qt ret
我正在尝试使用 FlameRobin 打开一个 .fdb (Firebird) 数据库,但它给了我以下错误消息: *** IBPP::SQLException *** Context: Databas
我有一个旧版 Firebird(版本 2.5.2)数据库,并使用 FlameRobin(版本 0.0.2.1851)来检查它。 我已在 RDB$RELATION_CONSTRAINTS 表上运行以下查
我是这里的 Firebird 新手。我正在尝试从 ASP.Net 应用程序使用 Firebird Embedded。一切都连接正常,但我遇到了列名称长度的问题。我正在尝试创建一个名为“Orchard_
刚刚开始将 Firebird 与 Delphi XE 结合使用。需要一些从客户端计算机连接到服务器的帮助。 我可以 ping 服务器,因此存在连接。但是当我从 firebird/bin 文件夹运行 i
我在 Ubuntu 中打开命令提示符,然后登录 Firebird,如下所示: $ isql-fb SQL> connect "localhost:/var/lib/firebird/2.5/data/
已下载 Firebird 数据库 Firebird-3.0.3.32900-0_x64_pdb.zip。解压文件夹install_service.bat并能够访问EMPLOYEE.FDB数据库。无需
如何在 Firebird 中将多个数据库合并为一个?我尝试了 fbexport,但没有在 Ubuntu 上编译 fbexport,我不断收到此错误。 g++ -pthread -lfbclient -
我想查询以下内容:所有表及其列和数据类型 到目前为止,我从 http://www.firebirdfaq.org/faq174/ 得到了这个 select f.rdb$relation_name, f
我有一个接近 4GB 文件系统限制大小的 firebird 数据库。如何将单个数据库文件拆分为多个文件? 最佳答案 对于单个文件数据库,Firebird 数据库可以跨越数 TB。 InterBase
我是一名优秀的程序员,十分优秀!