mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			99 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * insert.c
 | 
						|
 *
 | 
						|
*/
 | 
						|
 | 
						|
#include <stdio.h>
 | 
						|
#include <signal.h>
 | 
						|
#include <time.h>
 | 
						|
#include <libpq-fe.h>
 | 
						|
#include "halt.h"
 | 
						|
#include "pginterface.h"
 | 
						|
 | 
						|
int main(int argc, char **argv)
 | 
						|
{
 | 
						|
	char query[4000];
 | 
						|
	int row =1;
 | 
						|
	int	aint;
 | 
						|
	float afloat;
 | 
						|
	double adouble;
 | 
						|
	char achar[11], achar16[17], abpchar[11], avarchar[51], atext[51];
 | 
						|
	time_t aabstime;
 | 
						|
	
 | 
						|
	if (argc != 2)
 | 
						|
		halt("Usage:  %s database\n",argv[0]);
 | 
						|
 | 
						|
	connectdb(argv[1],NULL,NULL,NULL,NULL);
 | 
						|
 | 
						|
	on_error_continue();
 | 
						|
	doquery("DROP TABLE testfetch");
 | 
						|
	on_error_stop();
 | 
						|
 | 
						|
	doquery("\
 | 
						|
		CREATE TABLE testfetch( \
 | 
						|
			aint 	int4, \
 | 
						|
			afloat 	float4, \
 | 
						|
			adouble float8, \
 | 
						|
			achar	char, \
 | 
						|
			achar16	char16, \
 | 
						|
			abpchar char(10), \
 | 
						|
			avarchar varchar(50), \
 | 
						|
			atext	text, \
 | 
						|
			aabstime abstime) \
 | 
						|
		");
 | 
						|
 | 
						|
	while(1)
 | 
						|
	{
 | 
						|
		sprintf(query,"INSERT INTO testfetch VALUES ( \
 | 
						|
			%d, \
 | 
						|
			2322.12, \
 | 
						|
			'923121.0323'::float8, \
 | 
						|
			'A', \
 | 
						|
			'Betty', \
 | 
						|
			'Charley', \
 | 
						|
			'Doug', \
 | 
						|
			'Ernie', \
 | 
						|
			'now' )", row);
 | 
						|
		doquery(query);
 | 
						|
		
 | 
						|
		doquery("BEGIN WORK");
 | 
						|
  		doquery("DECLARE c_testfetch BINARY CURSOR FOR \
 | 
						|
					SELECT * FROM testfetch");
 | 
						|
 | 
						|
		doquery("FETCH ALL IN c_testfetch");
 | 
						|
 | 
						|
		while (fetch(
 | 
						|
			&aint, 	
 | 
						|
			&afloat, 	
 | 
						|
			&adouble, 
 | 
						|
			achar,	
 | 
						|
			achar16,	
 | 
						|
			abpchar, 
 | 
						|
			avarchar, 
 | 
						|
			atext,
 | 
						|
			&aabstime) != END_OF_TUPLES)
 | 
						|
				printf("int %d\nfloat %f\ndouble %f\nchar %s\nchar16 %s\n\
 | 
						|
bpchar %s\nvarchar %s\ntext %s\nabstime %s",
 | 
						|
				aint, 	
 | 
						|
				afloat, 	
 | 
						|
				adouble, 
 | 
						|
				achar,	
 | 
						|
				achar16,	
 | 
						|
				abpchar, 
 | 
						|
				avarchar,
 | 
						|
				atext,
 | 
						|
				ctime(&aabstime));
 | 
						|
 | 
						|
		
 | 
						|
		doquery("CLOSE c_testfetch");
 | 
						|
		doquery("COMMIT WORK");
 | 
						|
		printf("--- %-d rows inserted so far\n",row);
 | 
						|
		
 | 
						|
		row++;
 | 
						|
	}
 | 
						|
 | 
						|
	disconnectdb();
 | 
						|
	return 0;
 | 
						|
}
 | 
						|
 |