📄 sqlrelaycmd.c
字号:
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 + -