pginsert.c
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:2k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. /*
  2.  * insert.c
  3.  *
  4. */
  5. #include <stdio.h>
  6. #include <time.h>
  7. #include <libpq-fe.h>
  8. #include "halt.h"
  9. #include "pginterface.h"
  10. int
  11. main(int argc, char **argv)
  12. {
  13. char query[4000];
  14. int row = 1;
  15. int aint;
  16. float afloat;
  17. double adouble;
  18. char achar[11],
  19. achar16[17],
  20. abpchar[11],
  21. avarchar[51],
  22. atext[51];
  23. time_t aabstime;
  24. if (argc != 2)
  25. halt("Usage:  %s databasen", argv[0]);
  26. connectdb(argv[1], NULL, NULL, NULL, NULL);
  27. on_error_continue();
  28. doquery("DROP TABLE testfetch");
  29. on_error_stop();
  30. doquery("
  31. CREATE TABLE testfetch( 
  32. aint  int4, 
  33. afloat  float4, 
  34. adouble float8, 
  35. achar char, 
  36. achar16 char16, 
  37. abpchar char(10), 
  38. avarchar varchar(50), 
  39. atext text, 
  40. aabstime abstime) 
  41. ");
  42. while (1)
  43. {
  44. sprintf(query, "INSERT INTO testfetch VALUES ( 
  45. %d, 
  46. 2322.12, 
  47. '923121.0323'::float8, 
  48. 'A', 
  49. 'Betty', 
  50. 'Charley', 
  51. 'Doug', 
  52. 'Ernie', 
  53. 'now' )", row);
  54. doquery(query);
  55. doquery("BEGIN WORK");
  56. doquery("DECLARE c_testfetch BINARY CURSOR FOR 
  57. SELECT * FROM testfetch");
  58. doquery("FETCH ALL IN c_testfetch");
  59. while (fetch(
  60.  &aint,
  61.  &afloat,
  62.  &adouble,
  63.  achar,
  64.  achar16,
  65.  abpchar,
  66.  avarchar,
  67.  atext,
  68.  &aabstime) != END_OF_TUPLES)
  69. printf("int %dnfloat %fndouble %fnchar %snchar16 %sn
  70. bpchar %snvarchar %sntext %snabstime %s",
  71.    aint,
  72.    afloat,
  73.    adouble,
  74.    achar,
  75.    achar16,
  76.    abpchar,
  77.    avarchar,
  78.    atext,
  79.    ctime(&aabstime));
  80. doquery("CLOSE c_testfetch");
  81. doquery("COMMIT WORK");
  82. printf("--- %-d rows inserted so farn", row);
  83. row++;
  84. }
  85. disconnectdb();
  86. return 0;
  87. }