README
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:3k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. Hello! :)
  2. (Sorry for my english. But if i wrote in portuguese, you wouldn't
  3.  understand nothing. :])
  4. I found it's the right place to post this. I'm a newcomer in these
  5. lists. I hope i did it right. :]
  6. <BOREDOM>
  7. When i started using SQL, i started with mSQL. I developed a lot
  8. of useful apps for me and my job with C, mainly because i loved it's
  9. elegant, simple api. But for a large project i'm doing in these days, i
  10. thought is was not enough, because it felt a lot of features i started to
  11. need, like security and subselects. (and it's not free :))
  12. So after looking at the options, choose to start again with
  13. postgres. It offered everything that i needed, and the documentation is
  14. really good (remember me to thank the one who wrote'em).
  15. But for my little apps, i needed to start porting them to libpq.
  16. After looking at pq's syntax, i found it was better to write a bridge
  17. between the mSQL api and libpq. I found that rewriting the libmsql.a
  18. routines that calls libpq would made things much easier. I guess the
  19. results are quite good right now.
  20. </BOREDOM>
  21. Ok. Lets' summarize it:
  22. mpgsql.c is the bridge. Acting as a wrapper, it's really good,
  23. since i could run mSQL. But it's not accurate. Some highlights:
  24. CONS:
  25. * It's not well documented 
  26. (this post is it's first documentation attempt, in fact);
  27. * It doesn't handle field types correctly. I plan to fix it,
  28.   if people start doing feedbacks;
  29. * It's limited to 10 simultaneous connections. I plan to enhance
  30.   this, i'm just figuring out;
  31. * I'd like to make it reentrant/thread safe, although i don't
  32.   think this could be done without changing the API structure;
  33. * Error Management should be better. This is my first priority
  34.           now;
  35. * Some calls are just empty implementations.
  36. PROS:
  37. * the mSQL Monitor runs Okay. :]
  38. * It's really cool. :)
  39. * Make mSQL-made applications compatible with postgresql just by
  40.   changing link options.
  41. * Uses postgreSQL. :]
  42. * the mSQL API it's far easier to use and understand than libpq.
  43.           Consider this example:
  44. #include "msql.h"
  45. void main(int argc, char **argv, char **envp) {
  46.    int sid;
  47.    sid = msqlConnect(NULL); /* Connects via unix socket */
  48.    if (sid >= 0) {
  49.       m_result *rlt;
  50.       m_row *row;
  51.       msqlSelectDB(sid, "hosts");
  52.       if (msqlQuery(sid, "select host_id from hosts")) {
  53.  rlt = msqlStoreResult();
  54.          while (row = (m_row*)msqlFetchRow(rlt)) 
  55.             printf("hostid: %sn", row[0]);
  56.          msqlFreeResult(rlt);
  57.       }
  58.       msqlClose(sid);
  59.    }
  60. }
  61. I enclose mpgsql.c inside. I'd like to maintain it, and (maybe, am
  62. i dreaming) make it as part of the pgsql distribution. I guess it doesn't
  63. depends on me, but mainly on it's acceptance by its users.
  64. Hm... i forgot: you'll need a msql.h copy, since it's copyrighted
  65. by Hughes Technologies Pty Ltd. If you haven't it yes, fetch one
  66. from www.hughes.com.au.
  67. I would like to catch users ideas. My next goal is to add better
  68. error handling, and to make it better documented, and try to let relshow
  69. run through it. :)
  70. done. Aldrin Leal <aldrin@americasnet.com>