Я искал соединение с базой данных из программы на Си. Но я думал, что соединения ODBC, вход в систему и все нуждаются в некоторых библиотеках. Также у меня есть минимальный компилятор, такой как Tiny C Compiler, который очень быстрый. Я не хочу использовать какую-либо логику ODBC и т. Д., Которая необходима для подключения и запроса к базе данных.
Поэтому я использую метод, который заключается в следующем.
Я использую скрипт bteq (teradata), который будет содержать команды login, query, logoff. (FYI bteq - это утилита базы данных командной строки. Вы можете использовать ее подобно mysql.exe в командной строке, перейдя по пути к файлу exe. Вы можете заменить bteq на mysql.exe и т. Д.). И я использую
system("bteq <myscript.txt >out.txt");
myscript.txt будет выглядеть следующим образом.
.logon boxname/user,password;
select date;
.logoff;
Приведенный выше сценарий войдет в базу данных и дату запроса (вы можете изменить запрос и написать сценарий в соответствии с вашим механизмом базы данных и вашими потребностями) и вывести результат в out.txt.
Теперь я проанализирую файл out.txt для столбца строки X, который я хочу, используя fgetc, fscanf или fgets.
И использовать данные для проверки и отправки почты с помощью PHP на любой сервер
system("c:/server/php/php.exe sendmail.php");
.
Мы можем сделать то же самое для многих механизмов баз данных, таких как mysql и т. Д., С помощью простой программы на Си.
Теперь мой вопрос: есть ли недостаток в вышеуказанном методе?
Если это так, то как я могу преодолеть это? Я задаю этот вопрос, потому что считаю этот метод нетрадиционным. Пожалуйста, выскажите свое мнение об этом методе. Я не беспокоюсь о времени, необходимом для выполнения, используемой оперативной памяти, проблемах с производительностью и т. Д. Я знаю, что функция system () отнимает много времени, что в любом случае меня не касается. Я также разработал специальные функции для доступа к результатам запроса (аналогично доступу к плоскому файлу). Скажите, пожалуйста, есть ли у вас какие-либо улучшения в этом методе. Если вы обнаружите какие-либо недостатки в этом, пожалуйста, дайте мне знать. Все виды предложений приветствуются.
Моя среда: teradata bteq в Windows с Tiny C Compiler