⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sqlrelaycmd.c

📁 适合于Unix/Linux下的一个持久数据库连接池
💻 C
📖 第 1 页 / 共 4 页
字号:
	Tcl_SetObjResult(interp, result);	break;      }    case SQLRCUR_firstRowIndex:      {	Tcl_Obj *result;	if (objc > 2) {	  Tcl_WrongNumArgs(interp, 2, objv, NULL);	  return TCL_ERROR;	}	result = Tcl_NewIntObj(cur->firstRowIndex());	Tcl_SetObjResult(interp, result);	break;      }    case SQLRCUR_endOfResultSet:      {	Tcl_Obj *result;	if (objc > 2) {	  Tcl_WrongNumArgs(interp, 2, objv, NULL);	  return TCL_ERROR;	}	result = Tcl_NewBooleanObj(cur->endOfResultSet());	Tcl_SetObjResult(interp, result);	break;      }    case SQLRCUR_errorMessage:      {	const char *msg;	if (objc > 2) {	  Tcl_WrongNumArgs(interp, 2, objv, NULL);	  return TCL_ERROR;	}	if ((msg = cur->errorMessage()) == NULL) {	  msg = "";	}	Tcl_SetObjResult(interp, Tcl_NewStringObj(msg, -1));	break;      }      /*    case SQLRCUR_getNullsAsEmptyStrings:    case SQLRCUR_getNullsAsNulls:      */    case SQLRCUR_getFieldByIndex:      {	int row, col;	const char *field = (const char *)NULL;	if (objc != 4) {	  Tcl_WrongNumArgs(interp, 2, objv, "row col");	  return TCL_ERROR;	}	if (Tcl_GetIntFromObj(interp, objv[2], &row) != TCL_OK ||	    Tcl_GetIntFromObj(interp, objv[3], &col) != TCL_OK) {	  return TCL_ERROR;	}	if ((field = cur->getField(row, col)) == (const char *)NULL) {	  field = "";	}	Tcl_SetObjResult(interp, Tcl_NewStringObj(field, cur->getFieldLength(row,col)));	break;      }    case SQLRCUR_getFieldByName:      {	int row;	const char *field = (const char *)NULL;	if (objc != 4) {	  Tcl_WrongNumArgs(interp, 2, objv, "row col");	  return TCL_ERROR;	}	if (Tcl_GetIntFromObj(interp, objv[2], &row) != TCL_OK) {	  return TCL_ERROR;	}	if ((field = cur->getField(row, Tcl_GetString(objv[3]))) == (const char *)NULL) {	  field = "";	}	Tcl_SetObjResult(interp, Tcl_NewStringObj(field, cur->getFieldLength(row, Tcl_GetString(objv[3]))));	break;      }    case SQLRCUR_getFieldAsIntegerByIndex:      {	int row, col;	if (objc != 4) {	  Tcl_WrongNumArgs(interp, 2, objv, "row col");	  return TCL_ERROR;	}	if (Tcl_GetIntFromObj(interp, objv[2], &row) != TCL_OK ||	    Tcl_GetIntFromObj(interp, objv[3], &col) != TCL_OK) {	  return TCL_ERROR;	}	Tcl_SetObjResult(interp, Tcl_NewLongObj(cur->getFieldAsInteger(row, col)));	break;      }    case SQLRCUR_getFieldAsIntegerByName:      {	int row;	if (objc != 4) {	  Tcl_WrongNumArgs(interp, 2, objv, "row col");	  return TCL_ERROR;	}	if (Tcl_GetIntFromObj(interp, objv[2], &row) != TCL_OK) {	  return TCL_ERROR;	}	Tcl_SetObjResult(interp, Tcl_NewLongObj(cur->getFieldAsInteger(row, Tcl_GetString(objv[3]))));	break;      }    case SQLRCUR_getFieldAsDoubleByIndex:      {	int row, col;	if (objc != 4) {	  Tcl_WrongNumArgs(interp, 2, objv, "row col");	  return TCL_ERROR;	}	if (Tcl_GetIntFromObj(interp, objv[2], &row) != TCL_OK ||	    Tcl_GetIntFromObj(interp, objv[3], &col) != TCL_OK) {	  return TCL_ERROR;	}	Tcl_SetObjResult(interp, Tcl_NewDoubleObj(cur->getFieldAsDouble(row, col)));	break;      }    case SQLRCUR_getFieldAsDoubleByName:      {	int row;	if (objc != 4) {	  Tcl_WrongNumArgs(interp, 2, objv, "row col");	  return TCL_ERROR;	}	if (Tcl_GetIntFromObj(interp, objv[2], &row) != TCL_OK) {	  return TCL_ERROR;	}	Tcl_SetObjResult(interp, Tcl_NewDoubleObj(cur->getFieldAsDouble(row, Tcl_GetString(objv[3]))));	break;      }    case SQLRCUR_getFieldLengthByIndex:      {	int row, col;	long length;	if (objc != 4) {	  Tcl_WrongNumArgs(interp, 2, objv, "row col");	  return TCL_ERROR;	}	if (Tcl_GetIntFromObj(interp, objv[2], &row) != TCL_OK ||	    Tcl_GetIntFromObj(interp, objv[3], &col) != TCL_OK) {	  return TCL_ERROR;	}	length = cur->getFieldLength(row, col);	Tcl_SetObjResult(interp, Tcl_NewLongObj(length));	break;      }    case SQLRCUR_getFieldLengthByName:      {	int row;	long length;	if (objc != 4) {	  Tcl_WrongNumArgs(interp, 2, objv, "row col");	  return TCL_ERROR;	}	if (Tcl_GetIntFromObj(interp, objv[2], &row) != TCL_OK) {	  return TCL_ERROR;	}	length = cur->getFieldLength(row, Tcl_GetString(objv[3]));	Tcl_SetObjResult(interp, Tcl_NewLongObj(length));	break;      }    case SQLRCUR_getRow:      {	Tcl_WideInt row;	uint32_t col;	const char * const *rowarray;	uint32_t *lengtharray;	Tcl_Obj *resultList;	if (objc != 3) {	  Tcl_WrongNumArgs(interp, 2, objv, "row");	  return TCL_ERROR;	}	if (Tcl_GetWideIntFromObj(interp, objv[2], &row) != TCL_OK) {	  return TCL_ERROR;	}	rowarray = cur->getRow(row);	lengtharray = cur->getRowLengths(row);	resultList = Tcl_NewObj();	for (col = 0; col < cur->colCount(); col++) {	  if (Tcl_ListObjAppendElement(interp, resultList,				       Tcl_NewStringObj((rowarray[col])?rowarray[col]:"", lengtharray[col])) != TCL_OK) {	    return TCL_ERROR;	  }	}	Tcl_SetObjResult(interp, resultList);	break;      }    case SQLRCUR_getRowLengths:      {	Tcl_WideInt row;	uint32_t col;	uint32_t *lenarray;	Tcl_Obj *resultList;	if (objc != 3) {	  Tcl_WrongNumArgs(interp, 2, objv, "row");	  return TCL_ERROR;	}	if (Tcl_GetWideIntFromObj(interp, objv[2], &row) != TCL_OK) {	  return TCL_ERROR;	}	lenarray = cur->getRowLengths(row);	resultList = Tcl_NewObj();	for (col = 0; col < cur->colCount(); col++) {	  if (Tcl_ListObjAppendElement(interp, resultList,				       Tcl_NewLongObj(lenarray[col])) != TCL_OK) {	    return TCL_ERROR;	  }	}	Tcl_SetObjResult(interp, resultList);	break;      }    case SQLRCUR_getColumnNames:      {	int i = 0;	const char * const *namearray;	Tcl_Obj *resultList;	if (objc > 2) {	  Tcl_WrongNumArgs(interp, 2, objv, NULL);	  return TCL_ERROR;	}	namearray = cur->getColumnNames();	resultList = Tcl_NewObj();	while (namearray[i] != (const char *)NULL) {	  if (Tcl_ListObjAppendElement(interp, resultList,				       Tcl_NewStringObj(namearray[i++], -1)) != TCL_OK) {	    return TCL_ERROR;	  }	}	Tcl_SetObjResult(interp,resultList);	break;      }    case SQLRCUR_getColumnName:      {	int col;	const char *name = (const char *)NULL;	if (objc != 3) {	  Tcl_WrongNumArgs(interp, 2, objv, "col");	  return TCL_ERROR;	}	if (Tcl_GetIntFromObj(interp, objv[2], &col) != TCL_OK) {	  return TCL_ERROR;	}	if ((name = cur->getColumnName(col)) == (const char *)NULL) {	  name = "";	}	Tcl_SetObjResult(interp, Tcl_NewStringObj(name, -1));	break;      }    case SQLRCUR_getColumnTypeByIndex:      {	int col;	const char *name = (const char *)NULL;	if (objc != 3) {	  Tcl_WrongNumArgs(interp, 2, objv, "col");	  return TCL_ERROR;	}	if (Tcl_GetIntFromObj(interp, objv[2], &col) != TCL_OK) {	  return TCL_ERROR;	}	if ((name = cur->getColumnType(col)) == (const char *)NULL) {	  name = "";	}	Tcl_SetObjResult(interp, Tcl_NewStringObj(name, -1));	break;      }    case SQLRCUR_getColumnTypeByName:      {	const char *name = (const char *)NULL;	if (objc != 3) {	  Tcl_WrongNumArgs(interp, 2, objv, "col");	  return TCL_ERROR;	}	if ((name = cur->getColumnType(Tcl_GetString(objv[2]))) == (const char *)NULL) {	  name = "";	}	Tcl_SetObjResult(interp, Tcl_NewStringObj(name, -1));	break;      }    case SQLRCUR_getColumnLengthByIndex:      {	int col;	uint32_t len;	if (objc != 3) {	  Tcl_WrongNumArgs(interp, 2, objv, "col");	  return TCL_ERROR;	}	if (Tcl_GetIntFromObj(interp, objv[2], &col) != TCL_OK) {	  return TCL_ERROR;	}	len = cur->getColumnLength(col);	Tcl_SetObjResult(interp, Tcl_NewIntObj(len));	break;      }    case SQLRCUR_getColumnLengthByName:      {	int len;	if (objc != 3) {	  Tcl_WrongNumArgs(interp, 2, objv, "col");	  return TCL_ERROR;	}	len = cur->getColumnLength(Tcl_GetString(objv[2]));	Tcl_SetObjResult(interp, Tcl_NewIntObj(len));	break;      }    case SQLRCUR_getColumnPrecisionByIndex:      {	int col;	uint32_t precision;	if (objc != 3) {	  Tcl_WrongNumArgs(interp, 2, objv, "col");	  return TCL_ERROR;	}	if (Tcl_GetIntFromObj(interp, objv[2], &col) != TCL_OK) {	  return TCL_ERROR;	}	precision = cur->getColumnPrecision(col);	Tcl_SetObjResult(interp, Tcl_NewLongObj(precision));	break;      }    case SQLRCUR_getColumnPrecisionByName:      {	uint32_t precision;	if (objc != 3) {	  Tcl_WrongNumArgs(interp, 2, objv, "col");	  return TCL_ERROR;	}	precision = cur->getColumnPrecision(Tcl_GetString(objv[2]));	Tcl_SetObjResult(interp, Tcl_NewLongObj(precision));	break;      }    case SQLRCUR_getColumnScaleByIndex:      {	int col;	uint32_t scale;	if (objc != 3) {	  Tcl_WrongNumArgs(interp, 2, objv, "col");	  return TCL_ERROR;	}	if (Tcl_GetIntFromObj(interp, objv[2], &col) != TCL_OK) {	  return TCL_ERROR;	}	scale = cur->getColumnScale(col);	Tcl_SetObjResult(interp, Tcl_NewLongObj(scale));	break;      }    case SQLRCUR_getColumnScaleByName:      {	uint32_t scale;	if (objc != 3) {	  Tcl_WrongNumArgs(interp, 2, objv, "col");	  return TCL_ERROR;	}	scale = cur->getColumnScale(Tcl_GetString(objv[2]));	Tcl_SetObjResult(interp, Tcl_NewLongObj(scale));	break;      }    case SQLRCUR_getColumnIsNullableByIndex:      {	int col;	bool isnullable;	if (objc != 3) {	  Tcl_WrongNumArgs(interp, 2, objv, "col");	  return TCL_ERROR;	}	if (Tcl_GetIntFromObj(interp, objv[2], &col) != TCL_OK) {	  return TCL_ERROR;	}	isnullable = cur->getColumnIsNullable(col);	Tcl_SetObjResult(interp, Tcl_NewLongObj(isnullable));	break;      }    case SQLRCUR_getColumnIsNullableByName:      {	bool isnullable;	if (objc != 3) {	  Tcl_WrongNumArgs(interp, 2, objv, "col");	  return TCL_ERROR;	}	isnullable = cur->getColumnIsNullable(Tcl_GetString(objv[2]));	Tcl_SetObjResult(interp, Tcl_NewIntObj(isnullable));	break;      }    case SQLRCUR_getColumnIsPrimaryKeyByIndex:      {	int col;	bool isprimarykey;	if (objc != 3) {	  Tcl_WrongNumArgs(interp, 2, objv, "col");	  return TCL_ERROR;	}	if (Tcl_GetIntFromObj(interp, objv[2], &col) != TCL_OK) {	  return TCL_ERROR;	}	isprimarykey = cur->getColumnIsPrimaryKey(col);	Tcl_SetObjResult(interp, Tcl_NewLongObj(isprimarykey));	break;      }    case SQLRCUR_getColumnIsPrimaryKeyByName:      {	bool isprimarykey;	if (objc != 3) {	  Tcl_WrongNumArgs(interp, 2, objv, "col");	  return TCL_ERROR;	}	isprimarykey = cur->getColumnIsPrimaryKey(Tcl_GetString(objv[2]));	Tcl_SetObjResult(interp, Tcl_NewIntObj(isprimarykey));	break;      }    case SQLRCUR_getColumnIsUniqueByIndex:      {	int col;	bool isunique;	if (objc != 3) {	  Tcl_WrongNumArgs(interp, 2, objv, "col");	  return TCL_ERROR;	}	if (Tcl_GetIntFromObj(interp, objv[2], &col) != TCL_OK) {	  return TCL_ERROR;	}	isunique = cur->getColumnIsUnique(col);	Tcl_SetObjResult(interp, Tcl_NewLongObj(isunique));	break;      }    case SQLRCUR_getColumnIsUniqueByName:      {	bool isunique;	if (objc != 3) {	  Tcl_WrongNumArgs(interp, 2, objv, "col");	  return TCL_ERROR;	}	isunique = cur->getColumnIsUnique(Tcl_GetString(objv[2]));	Tcl_SetObjResult(interp, Tcl_NewIntObj(isunique));	break;      }    case SQLRCUR_getColumnIsPartOfKeyByIndex:      {	int col;	bool ispartofkey;	if (objc != 3) {	  Tcl_WrongNumArgs(interp, 2, objv, "col");	  return TCL_ERROR;	}	if (Tcl_GetIntFromObj(interp, objv[2], &col) != TCL_OK) {	  return TCL_ERROR;	}	ispartofkey = cur->getColumnIsPartOfKey(col);	Tcl_SetObjResult(interp, Tcl_NewLongObj(ispartofkey));	break;      }    case SQLRCUR_getColumnIsPartOfKeyByName:      {	bool ispartofkey;	if (objc != 3) {	  Tcl_WrongNumArgs(interp, 2, objv, "col");	  return TCL_ERROR;	}	ispartofkey = cur->getColumnIsPartOfKey(Tcl_GetString(objv[2]));	Tcl_SetObjResult(interp, Tcl_NewIntObj(ispartofkey));	break;      }    case SQLRCUR_getColumnIsUnsignedByIndex:      {	int col;	bool isunsigned;	if (objc != 3) {	  Tcl_WrongNumArgs(interp, 2, objv, "col");	  return TCL_ERROR;	}	if (Tcl_GetIntFromObj(interp, objv[2], &col) != TCL_OK) {	  return TCL_ERROR;	}	isunsigned = cur->getColumnIsUnsigned(col);	Tcl_SetObjResult(interp, Tcl_NewLongObj(isunsigned));	break;      }    case SQLRCUR_getColumnIsUnsignedByName:      {	bool isunsigned;	if (objc != 3) {	  Tcl_WrongNumArgs(interp, 2, objv, "col");	  return TCL_ERROR;	}	isunsigned = cur->getColumnIsUnsigned(Tcl_GetString(objv[2]));	Tcl_SetObjResult(interp, Tcl_NewIntObj(isunsigned));	break;      }    case SQLRCUR_getColumnIsZeroFilledByIndex:      {	int col;	bool iszerofilled;	if (objc != 3) {	  Tcl_WrongNumArgs(interp, 2, objv, "col");	  return TCL_ERROR;	}	if (Tcl_GetIntFromObj(interp, objv[2], &col) != TCL_OK) {	  return TCL_ERROR;	}	iszerofilled = cur->getColumnIsZeroFilled(col);	Tcl_SetObjResult(interp, Tcl_NewLongObj(iszerofilled));	break;      }    case SQLRCUR_getColumnIsZeroFilledByName:      {	bool iszerofilled;	if (objc != 3) {	  Tcl_WrongNumArgs(interp, 2, objv, "col");	  return TCL_ERROR;	}	iszerofilled = cur->getColumnIsZeroFilled(Tcl_GetString(objv[2]));	Tcl_SetObjResult(interp, Tcl_NewIntObj(iszerofilled));	break;      }    case SQLRCUR_getColumnIsBinaryByIndex:      {	int col;	bool isbinary;	if (objc != 3) {	  Tcl_WrongNumArgs(interp, 2, objv, "col");	  return TCL_ERROR;	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -