*** empty log message ***
[csql.git] / test / odbc / Metadata / metadata5nw.c
blobd7206793d6f81dcddf9ef2faec8de97080a9ed17
1 /* Use Connection String "DSN=mycsql;MODE=csql;SERVER=127.0.0.1;PORT=5678;" for Connect Data Source
2 * CREATE TABLE "T1" WITH 10 FIELDS.
3 SQLPrimaryKeys() Should return primary key information
5 */
7 #include<stdio.h>
8 #include<stdlib.h>
9 #include<sql.h>
10 #include<sqlext.h>
11 #include<string.h>
12 #include<CSql.h>
13 //*************************************************************************
14 // ERROR CHECK FUNCTION
15 inline void checkrc(int rc,int line)
17 if(rc)
19 printf("ERROR %d at line %d\n",rc,line);
20 exit(1);
24 //*************************************************************************
25 // FUNCTION FOR INSERTING ROWS IN IT.
27 int FetchTest(SQLHANDLE env, SQLHANDLE dbc, SQLHANDLE stmt,char *tablename)
29 int ret;
30 char f1[50]= "praba";
31 char f2[50]= "praba";
32 char f3[50]= "praba";
33 char f4[50]= "praba";
34 short f5;
35 char f6[50]= "praba";
37 ret = SQLPrimaryKeys(stmt, (SQLCHAR*)"", SQL_NTS, (SQLCHAR*)"", SQL_NTS, (SQLCHAR*)tablename,SQL_NTS);
38 checkrc(ret,__LINE__);
39 short totalFields=0;
40 ret = SQLNumResultCols (stmt, &totalFields);
41 checkrc(ret,__LINE__);
42 printf( "No of columns in resultset = %d\n",totalFields);
44 ret = SQLBindCol(stmt,1,SQL_C_CHAR,f1,sizeof(f1),NULL);
45 checkrc(ret,__LINE__);
46 ret = SQLBindCol(stmt,2,SQL_C_CHAR,f2,sizeof(f2),NULL);
47 checkrc(ret,__LINE__);
48 ret = SQLBindCol(stmt,3,SQL_C_CHAR,f3,sizeof(f3),NULL);
49 checkrc(ret,__LINE__);
50 ret = SQLBindCol(stmt,4,SQL_C_CHAR,f4,sizeof(f4),NULL);
51 checkrc(ret,__LINE__);
52 SQLBindCol(stmt, 5, SQL_C_SHORT, &f5, 0, NULL);
53 checkrc(ret,__LINE__);
54 ret = SQLBindCol(stmt,6,SQL_C_CHAR,f6,sizeof(f6),NULL);
55 checkrc(ret,__LINE__);
56 while(SQL_SUCCEEDED(ret = SQLFetch(stmt))){
57 printf("catalogName%s \t SchemaName=%s \t TableName=%s \t ColumnName = %s \t KEY_SEQ=%hd\t Primarykey = %s \n ",f1,f2,f3,f4,f5,f6);
59 ret = SQLCloseCursor(stmt);
60 checkrc(ret,__LINE__);
62 ret = SQLTransact(env,dbc,SQL_COMMIT);
63 checkrc(ret,__LINE__);
64 return 0;
69 int main()
71 SQLHENV env;
72 SQLHDBC dbc;
73 SQLHSTMT stmt;
74 SQLRETURN ret;
75 SQLCHAR outstr[1024];
76 SQLSMALLINT outstrlen;
78 // Aloocate an environment handle
79 ret=SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&env);
80 checkrc(ret,__LINE__);
82 //we need odbc3 support
83 SQLSetEnvAttr(env,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,0);
85 //ALLOCATE A Connection handle
86 ret = SQLAllocHandle(SQL_HANDLE_DBC,env,&dbc);
87 checkrc(ret,__LINE__);
89 // connect to the DSN mydsn
90 ret = SQLConnect (dbc,
91 (SQLCHAR *) "DSN=mycsql;MODE=csql;SERVER=127.0.0.1;PORT=5678;", (SQLSMALLINT) strlen ("DSN=mycsql;MODE=csql;SERVER=127.0.0.1;PORT=5678;"),
92 (SQLCHAR *) "root",
93 (SQLSMALLINT) strlen ("root"),
94 (SQLCHAR *) "manager",
95 (SQLSMALLINT) strlen (""));
98 if(SQL_SUCCEEDED(ret))
100 printf("\nConnected to the Data Source..\n");
105 else
107 printf("error in conenction\n");
109 ret = SQLFreeHandle(SQL_HANDLE_DBC,dbc);
110 checkrc(ret,__LINE__);
112 ret = SQLFreeHandle(SQL_HANDLE_ENV,env);
113 checkrc(ret,__LINE__);
114 return 1;
118 //*****************************************************
119 // TABLE CREATED
120 ret = SQLAllocHandle(SQL_HANDLE_STMT,dbc,&stmt);
121 checkrc(ret,__LINE__);
123 SQLCHAR table[200]=
124 "CREATE TABLE T1(F1 INT,F2 SMALLINT,F3 CHAR(30),F4 FLOAT,F5 FLOAT,F6 DATE,F7 TIME,F8 TIMESTAMP,F9 TINYINT,F10 BIGINT, PRIMARY KEY(F2));";
126 ret = SQLPrepare(stmt,table,SQL_NTS);
127 checkrc(ret,__LINE__);
128 ret = SQLExecute(stmt);
129 checkrc(ret,__LINE__);
131 printf("\nTABLE CREATED\n");
132 //***************************
133 FetchTest(env,dbc,stmt,"T1");
134 //**************************************************
135 SQLCHAR drop[100]="DROP TABLE T1";
136 ret = SQLPrepare(stmt,drop,SQL_NTS);
137 checkrc(ret,__LINE__);
138 ret = SQLExecute(stmt);
139 if(ret!=SQL_SUCCESS && ret !=SQL_SUCCESS_WITH_INFO)
141 printf("Statement failed\n");
142 return 1;
146 printf("Tables dropped successfully\n");
148 ret = SQLFreeHandle(SQL_HANDLE_STMT,stmt);
149 checkrc(ret,__LINE__);
151 ret = SQLDisconnect(dbc);
152 checkrc(ret,__LINE__);
154 ret = SQLFreeHandle(SQL_HANDLE_DBC,dbc);
155 checkrc(ret,__LINE__);
157 ret = SQLFreeHandle(SQL_HANDLE_ENV,env);
158 checkrc(ret,__LINE__);
159 return 0;