求C\C++源码,遍历前一天某路径下的log文件并将其写进数据库解决办法

求C\C++源码,遍历前一天某路径下的log文件并将其写进数据库
在每天的凌晨1点钟开始遍历前一天的log文件,log文件名是根据日期命名的,将前一天的log文件写进数据库。领导给安排的人物,可我没做过这些啊,求大侠们帮帮忙,小弟感激不尽啊。

------解决方案--------------------
1 遍历目录
2 写一个函数,判断是否是前一天的Log
3 是的话,就读LOG文件,写二进制到表里面
------解决方案--------------------
思路如下:
为了最大限度的提高程序运行速度和效率,每天的LOG放在一个指定的文件下,一般文件夹如下:年\月\日\*.log

程序实现如下
1、开辟一个线程,获取当前时间,当前时间定在1:00左右
2、连接数据库
3、获取前一天时间的文件夹,将该文件夹下的所有LOG文件一个一个的读取,并写入数据库
类、函数:ifstream、FindFirstFile、 FindNextFile
4、关闭数据库

建议:
不要对产生的每个LOG文件直接写入数据库,要将每天的所有LOG文件一起写入数据库;
将每天的LOG文件放入指定的文件夹,便于程序实现高效,同时便于备份等其他操作,如果不这样做的话,





------解决方案--------------------
数据库参阅: http://www.vckbase.com/document/viewdoc/?id=719

将数据文件读取,放入到VARIANT类型对应的位置,设置VARIANT的类型,即可。
------解决方案--------------------
探讨

引用:

引用:

引用:

1 遍历目录
2 写一个函数,判断是否是前一天的Log
3 是的话,就读LOG文件,写二进制到表里面


请问怎么写二进制到表里面,还请赐教!

应该是将字段类型定义为BLOB。
读取文件,将文件存入一个VARIANT类型中,就可以了……

------解决方案--------------------
不知道你数据库是什么结构,到底是直接将整个文件以二进制方式存放呢,还是读取文件信息然后将信息存放进数据库呢。
前一种的话 你就直接以二进制打开 拷贝到内存中然后存放
第二种的话 你就用fscanf类的函数格式化一下

------解决方案--------------------
Perl code

#! perl -w
use strict;
use warnings;
use DBI;

&main();


#按照既定格式生成文件名
sub getlogfile
{
    #eg
    "2012-12-12.log";
}



sub main
{
    #假设是mysql数据库
    my $dbh = DBI->connet("DBI:mysql:database=db2;host=localhost", "joe", "guessme", {'RaiseError' => 1});

    my $logdir  = '';
    my $logfile = &getlogfile();
    my $sql     = 'insert into tablename (a,b,c,e,s)values';
    
    OPEN(FH,"$logdie/$logfile");
    
    while(<FH>)
    {
        #log formate : 2012-01-16 14:26 user logstring 12312
         s/\s/','/g;
         $sql .= "('$_'),";
    }
    
    $sql =~ s/,$//g;
    
    # execute INSERT query
    my $rows = $dbh->do($sql);
    print "$rows row(s) affected ";
    # clean up
    $dbh->disconnect();
}

------解决方案--------------------
探讨

引用:

不知道你数据库是什么结构,到底是直接将整个文件以二进制方式存放呢,还是读取文件信息然后将信息存放进数据库呢。
前一种的话 你就直接以二进制打开 拷贝到内存中然后存放
第二种的话 你就用fscanf类的函数格式化一下


是将整个文件存放,我是这样打开的:
fstream file;
file.open(filename,ios:……