gpt4 book ai didi

c - 将 system() 用于 C 中的数据库脚本是一种好方法吗?

转载 作者:太空狗 更新时间:2023-10-29 17:24:03 25 4
gpt4 key购买 nike

我正在搜索从 C 程序连接到数据库。但我认为 ODBC 连接、登录都需要一些库。我也有一个像 Tiny C Compiler 这样速度非常快的最小编译器。我不想使用连接和查询数据库所需的任何 ODBC 逻辑等。

所以我使用的方法如下。

我使用 bteq 脚本 (teradata),其中包含登录、查询、注销命令。 (仅供引用 bteq 是一个命令行数据库实用程序。您可以通过转到 exe 的路径在命令提示符下使用类似于 mysql.exe 的方式使用它。您可以将 bteq 替换为 mysql.exe 等)。我用

system("bteq <myscript.txt >out.txt");

myscript.txt 将如下所示..

.logon boxname/user,password;
select date;
.logoff;

以上脚本会登录数据库并查询日期(您可以根据您的数据库引擎和您的需要更改查询和编写脚本)并输出到out.txt。

现在我将使用 fgetc、fscanf 或 fgets 解析我想要的第 X 列的 out.txt。并使用数据在任何服务器上使用 PHP 检查和发送邮件

system("c:/server/php/php.exe sendmail.php");

我们可以通过一个简单的 C 程序对许多数据库引擎(如 mysql、.. 等)执行相同的操作。

现在我的问题是上面的方法有没有缺陷。如果是那么我该如何克服它。我问这个问题是因为我认为这种方法是非常规的。请就此方法发表您的意见。我不关心执行所需的时间、使用的 RAM、性能问题等。我知道 system() 函数很耗时,这不是我关心的。我还开发了特定的函数来访问查询结果(类似于访问平面文件)。如果您对此方法有任何改进,请告诉我。如果您知道其中的任何缺陷,请告诉我。欢迎各种建议。

我的环境是:teradata bteq on windows with Tiny C Compiler

最佳答案

只要您的需求简单,这是访问外部数据库的完美方式。如果您已经了解这样做对性能和内存的影响,那么就没什么好说的了。

关于c - 将 system() 用于 C 中的数据库脚本是一种好方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1259462/

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