load_file.cpp
上传用户:clovervx
上传日期:2010-03-30
资源大小:787k
文件大小:1k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. #include <windows.h>
  2. #include <sys/stat.h>
  3. #include <fstream>
  4. #include <sqlplus.hh>
  5. extern int errno;
  6. const char  MY_DATABASE[]="telcent";
  7. const char  MY_TABLE[]="fax";
  8. const char  MY_HOST[]="localhost";
  9. const char  MY_USER[]="root";
  10. const char  MY_PASSWORD[]="";
  11. const char  MY_FIELD[]="fax"; // BLOB field
  12. int main(int argc, char *argv[]) {
  13. if (argc < 2) {
  14. cerr << "Usage : load_file full_file_path" << endl << endl;
  15. return -1;
  16. }
  17.   Connection con(use_exceptions);
  18. try {
  19. con.real_connect (MY_DATABASE,MY_HOST,MY_USER,MY_PASSWORD,3306,(int)0,60,NULL);
  20. Query query = con.query(); ostrstream strbuf;
  21. ifstream In (argv[1],ios::in | ios::binary); struct stat for_len;
  22. if ((In.rdbuf())->is_open()) {
  23. if (stat (argv[1],&for_len) == -1) return -1;
  24. unsigned int blen = for_len.st_size;  if (!blen) return -1;
  25. char  *read_buffer = new char[blen]; In.read(read_buffer,blen); string fill(read_buffer,blen);
  26. strbuf  << "INSERT INTO " << MY_TABLE << " (" << MY_FIELD << ") VALUES(""  << escape << fill  << "")";
  27.       query.exec(strbuf.str());
  28. delete[] read_buffer;
  29. }
  30. else 
  31. cerr << "Your binary file " << argv[1] << "could not be open, errno = " << errno;
  32. return 0;
  33.   } catch (BadQuery er) { 
  34.     cerr << "Error: " << er.error << " " << con.errnum() << endl;
  35.     return -1;
  36. }
  37. }