*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-misc.c,v 1.44 2001/02/10 02:31:30 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-misc.c,v 1.45 2001/02/11 04:56:57 momjian Exp $
*
*-------------------------------------------------------------------------
*/
case ECONNRESET:
#endif
printfPQExpBuffer(&conn->errorMessage,
- "pqFlush() -- backend closed the channel unexpectedly.\n"
- "\tThis probably means the backend terminated abnormally"
- " before or while processing the request.\n");
+ "pqFlush() -- backend closed the channel unexpectedly.\n"
+ "\tThis probably means the backend terminated abnormally"
+ " before or while processing the request.\n");
/*
* We used to close the socket here, but that's a bad
default:
printfPQExpBuffer(&conn->errorMessage,
- "pqFlush() -- couldn't send data: errno=%d\n%s\n",
- errno, strerror(errno));
+ "pqFlush() -- couldn't send data: errno=%d\n%s\n",
+ errno, strerror(errno));
/* We don't assume it's a fatal error... */
return EOF;
}
*********************************************************************/
switch (field_type)
{
+
/*
* $$$ need to add parsing for date/time/timestamp strings in
* PG_TYPE_CHAR,VARCHAR $$$
}
else
{
+
/*
* for SQL_C_CHAR, it's probably ok to leave currency symbols in.
* But to convert to numeric types, it is necessary to get rid of
}
else if (strcmp(key, "fn") == 0)
{
+
/*
* Function invocation Separate off the func name, skipping
* trailing whitespace.
void
SetDlgStuff(HWND hdlg, ConnInfo * ci)
{
+
/*
* If driver attribute NOT present, then set the datasource name and
* description
/* Dont allow override of an override! */
if (!override)
{
+
/*
* ConnSettings is stored in the driver section and per datasource
* for override
if (szConnStrOut)
{
+
/*
* Return the completed string to the caller. The correct method
* is to only construct the connect string if a dialog was put up,
*/
if (stmt->data_at_exec < 0)
{
+
/*
* MAJOR HACK for Windows to reset the driver manager's cursor
* state: Because of what seems like a bug in the Odbc driver
/*
* The ODBC spec wants ##.##.#### ...whatever... so prepend
- * the driver version number to the dbms version string
+ * the driver version number to the dbms version string
*/
sprintf(tmp, "%s %s", POSTGRESDRIVERVERSION, conn->pg_version);
p = tmp;
result = SQLFetch(htbl_stmt);
while ((result == SQL_SUCCESS) || (result == SQL_SUCCESS_WITH_INFO))
{
+
/*
* Determine if this table name is a system table. If treating
* system tables as regular tables, then no need to do this test.
SWORD cbCursorMax,
SWORD FAR * pcbCursor);
- RETCODE SQL_API SQLNumResultCols(HSTMT hstmt,
- SWORD FAR * pccol);
+ RETCODE SQL_API SQLNumResultCols(HSTMT hstmt, SWORD FAR * pccol);
- RETCODE SQL_API SQLPrepare(HSTMT hstmt,
- UCHAR FAR * szSqlStr,
+ RETCODE SQL_API SQLPrepare(HSTMT hstmt, UCHAR FAR * szSqlStr,
SDWORD cbSqlStr);
- RETCODE SQL_API SQLRowCount(HSTMT hstmt,
- SDWORD FAR * pcrow);
+ RETCODE SQL_API SQLRowCount(HSTMT hstmt, SDWORD FAR * pcrow);
- RETCODE SQL_API SQLSetCursorName(HSTMT hstmt,
- UCHAR FAR * szCursor,
+ RETCODE SQL_API SQLSetCursorName(HSTMT hstmt, UCHAR FAR * szCursor,
SWORD cbCursor);
- RETCODE SQL_API SQLTransact(HENV henv,
- HDBC hdbc,
+ RETCODE SQL_API SQLTransact(HENV henv, HDBC hdbc,
UWORD fType);
- RETCODE SQL_API SQLSetParam(HSTMT hstmt,
- UWORD ipar,
+ RETCODE SQL_API SQLSetParam(HSTMT hstmt, UWORD ipar,
SWORD fCType,
SWORD fSqlType,
UDWORD cbColDef,
switch (fOption)
{
+
/*
* Statement Options (apply to all stmts on the connection and
* become defaults for new stmts)
}
else
{
+
/*
* See if we need to fetch another group of rows. We may be being
* called from send_query(), and if so, don't send another fetch,
}
else
{
+
/*
* NO, the field is not null. so get at first the length of
* the field (four bytes)
-//{{NO_DEPENDENCIES}}
-// Microsoft Developer Studio generated include file.
+//
+{
+ {
+ NO_DEPENDENCIES
+ }
+}
+
+//Microsoft Developer Studio generated include file.
// Used by psqlodbc.rc
//
-#define IDS_BADDSN 1
-#define IDS_MSGTITLE 2
-#define DLG_OPTIONS_DRV 102
-#define DLG_OPTIONS_DS 103
-#define IDC_DSNAME 400
-#define IDC_DSNAMETEXT 401
-#define IDC_DESC 404
-#define IDC_SERVER 407
-#define IDC_DATABASE 408
-#define DLG_CONFIG 1001
-#define IDC_PORT 1002
-#define IDC_USER 1006
-#define IDC_PASSWORD 1009
-#define DS_READONLY 1011
-#define DS_SHOWOIDCOLUMN 1012
-#define DS_FAKEOIDINDEX 1013
-#define DRV_COMMLOG 1014
-#define IDC_DATASOURCE 1018
-#define DRV_OPTIMIZER 1019
-#define DS_CONNSETTINGS 1020
-#define IDC_DRIVER 1021
-#define DRV_CONNSETTINGS 1031
-#define DRV_UNIQUEINDEX 1032
-#define DRV_UNKNOWN_MAX 1035
-#define DRV_UNKNOWN_DONTKNOW 1036
-#define DRV_READONLY 1037
-#define IDC_DESCTEXT 1039
-#define DRV_MSG_LABEL 1040
-#define DRV_UNKNOWN_LONGEST 1041
-#define DRV_TEXT_LONGVARCHAR 1043
-#define DRV_UNKNOWNS_LONGVARCHAR 1044
-#define DRV_CACHE_SIZE 1045
-#define DRV_VARCHAR_SIZE 1046
-#define DRV_LONGVARCHAR_SIZE 1047
-#define IDDEFAULTS 1048
-#define DRV_USEDECLAREFETCH 1049
-#define DRV_BOOLS_CHAR 1050
-#define DS_SHOWSYSTEMTABLES 1051
-#define DRV_EXTRASYSTABLEPREFIXES 1051
-#define DS_ROWVERSIONING 1052
-#define DRV_PARSE 1052
-#define DRV_CANCELASFREESTMT 1053
-#define IDC_OPTIONS 1054
-#define DRV_KSQO 1055
-#define DS_PG64 1057
+#define IDS_BADDSN 1
+#define IDS_MSGTITLE 2
+#define DLG_OPTIONS_DRV 102
+#define DLG_OPTIONS_DS 103
+#define IDC_DSNAME 400
+#define IDC_DSNAMETEXT 401
+#define IDC_DESC 404
+#define IDC_SERVER 407
+#define IDC_DATABASE 408
+#define DLG_CONFIG 1001
+#define IDC_PORT 1002
+#define IDC_USER 1006
+#define IDC_PASSWORD 1009
+#define DS_READONLY 1011
+#define DS_SHOWOIDCOLUMN 1012
+#define DS_FAKEOIDINDEX 1013
+#define DRV_COMMLOG 1014
+#define IDC_DATASOURCE 1018
+#define DRV_OPTIMIZER 1019
+#define DS_CONNSETTINGS 1020
+#define IDC_DRIVER 1021
+#define DRV_CONNSETTINGS 1031
+#define DRV_UNIQUEINDEX 1032
+#define DRV_UNKNOWN_MAX 1035
+#define DRV_UNKNOWN_DONTKNOW 1036
+#define DRV_READONLY 1037
+#define IDC_DESCTEXT 1039
+#define DRV_MSG_LABEL 1040
+#define DRV_UNKNOWN_LONGEST 1041
+#define DRV_TEXT_LONGVARCHAR 1043
+#define DRV_UNKNOWNS_LONGVARCHAR 1044
+#define DRV_CACHE_SIZE 1045
+#define DRV_VARCHAR_SIZE 1046
+#define DRV_LONGVARCHAR_SIZE 1047
+#define IDDEFAULTS 1048
+#define DRV_USEDECLAREFETCH 1049
+#define DRV_BOOLS_CHAR 1050
+#define DS_SHOWSYSTEMTABLES 1051
+#define DRV_EXTRASYSTABLEPREFIXES 1051
+#define DS_ROWVERSIONING 1052
+#define DRV_PARSE 1052
+#define DRV_CANCELASFREESTMT 1053
+#define IDC_OPTIONS 1054
+#define DRV_KSQO 1055
+#define DS_PG64 1057
-// Next default values for new objects
-//
+//Next default values for new
+ objects
+ //
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE 104
-#define _APS_NEXT_COMMAND_VALUE 40001
-#define _APS_NEXT_CONTROL_VALUE 1060
-#define _APS_NEXT_SYMED_VALUE 101
+#define _APS_NEXT_RESOURCE_VALUE 104
+#define _APS_NEXT_COMMAND_VALUE 40001
+#define _APS_NEXT_CONTROL_VALUE 1060
+#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
switch (GET_WM_COMMAND_ID(wParam, lParam))
{
+
/*
* Ensure the OK button is enabled only when a data
* source name
free(self->buffer_in);
if (self->buffer_out)
- free(self->buffer_out);
+ SOCK_put_n_char(self, (char *) &rv, 2);
+ free(self->buffer_out);
free(self);
}
{
case 2:
rv = self->reverse ? value : htons((unsigned short) value);
- SOCK_put_n_char(self, (char *) &rv, 2);
return;
case 4:
if (self->currTuple >= QR_get_num_tuples(res) - 1 ||
(self->options.maxRows > 0 && self->currTuple == self->options.maxRows - 1))
{
+
/*
* if at the end of the tuples, return "no data found" and set
* the cursor past the end of the result set
}
else if (start_is_closer)
{
+
/*
* the shortest way is to start the search from the head of the
* list
char
TL_add_tuple(TupleListClass * self, TupleNode * new_field)
{
+
/*
* we append the tuple at the end of the doubly linked list of the
* tuples we have already read in
}
else
{
+
/*
* there is already an element in the list, so add the new one at
* the end of the list