766:
767: -- Fetch one row and write the result to the stream
768: rows := dbms_sql.fetch_rows(tableDefs(tableIndex).SQLCursor);
769: if rows > 0 then
770: jtf_dbstream_utils.clearOutputStream;
771:
772: /* the retrieved values are no longer only varchar2
773: for i in 1..tableDefs(tableIndex).colCount loop
774: dbms_sql.column_value(tableDefs(tableIndex).SQLCursor, i, colVal);
771:
772: /* the retrieved values are no longer only varchar2
773: for i in 1..tableDefs(tableIndex).colCount loop
774: dbms_sql.column_value(tableDefs(tableIndex).SQLCursor, i, colVal);
775: jtf_dbstream_utils.writeString(colVal);
776: end loop;
777: */
778: -----------------------------------------------
779: j := 1;
780: for i in 1..temp_columnDefs.count loop
781: --dbms_output.put_line('i value is '||i||' datatype is '||columnDefs(i).data_type_code);
782: if temp_columnDefs(i).data_type_code = 'C' then
783: dbms_sql.column_value(tableDefs(tableIndex).SQLCursor, j, CharColVal);
784: jtf_dbstream_utils.writeString(charColVal);
785: elsif temp_columnDefs(i).data_type_code = 'N' then
786: dbms_sql.column_value(tableDefs(tableIndex).SQLCursor,j, NumberColVal);
787: if temp_columnDefs(i).display_format_mask is not null then
788: jtf_dbstream_utils.writeString(to_char(NumberColVal,temp_columnDefs(i).display_format_mask));
784: jtf_dbstream_utils.writeString(charColVal);
785: elsif temp_columnDefs(i).data_type_code = 'N' then
786: dbms_sql.column_value(tableDefs(tableIndex).SQLCursor,j, NumberColVal);
787: if temp_columnDefs(i).display_format_mask is not null then
788: jtf_dbstream_utils.writeString(to_char(NumberColVal,temp_columnDefs(i).display_format_mask));
789: elsif temp_columnDefs(i).display_format_type_code = 'CUR'
790: and temp_columnDefs(i).db_currency_code_col is not null then
791: j := j + 1;
792: dbms_sql.column_value(tableDefs(tableIndex).SQLCursor, j, charColVal);
789: elsif temp_columnDefs(i).display_format_type_code = 'CUR'
790: and temp_columnDefs(i).db_currency_code_col is not null then
791: j := j + 1;
792: dbms_sql.column_value(tableDefs(tableIndex).SQLCursor, j, charColVal);
793: jtf_dbstream_utils.writeCurrency(NumberColVal, charColVal);
794: else
795: jtf_dbstream_utils.writeNumber(NumberColVal);
796: end if;
797: elsif temp_columnDefs(i).data_type_code = 'D' then
791: j := j + 1;
792: dbms_sql.column_value(tableDefs(tableIndex).SQLCursor, j, charColVal);
793: jtf_dbstream_utils.writeCurrency(NumberColVal, charColVal);
794: else
795: jtf_dbstream_utils.writeNumber(NumberColVal);
796: end if;
797: elsif temp_columnDefs(i).data_type_code = 'D' then
798: dbms_sql.column_value(tableDefs(tableIndex).SQLCursor, j, dateColVal);
799: if temp_columnDefs(i).display_format_type_code = 'DAT' then
796: end if;
797: elsif temp_columnDefs(i).data_type_code = 'D' then
798: dbms_sql.column_value(tableDefs(tableIndex).SQLCursor, j, dateColVal);
799: if temp_columnDefs(i).display_format_type_code = 'DAT' then
800: jtf_dbstream_utils.writeDate(DateColVal);
801: else
802: jtf_dbstream_utils.writeDateTime(DateColVal);
803: end if;
804: elsif temp_columnDefs(i).data_type_code = 'I' then
798: dbms_sql.column_value(tableDefs(tableIndex).SQLCursor, j, dateColVal);
799: if temp_columnDefs(i).display_format_type_code = 'DAT' then
800: jtf_dbstream_utils.writeDate(DateColVal);
801: else
802: jtf_dbstream_utils.writeDateTime(DateColVal);
803: end if;
804: elsif temp_columnDefs(i).data_type_code = 'I' then
805: dbms_sql.column_value(tableDefs(tableIndex).SQLCursor, j, CharColVal);
806: imageCharColVal := CharColVal;
806: imageCharColVal := CharColVal;
807: if temp_columnDefs(i).image_description_col is not NULL then
808: j := j + 1;
809: dbms_sql.column_value(tableDefs(tableIndex).SQLCursor, j, CharColVal);
810: jtf_dbstream_utils.writeString(ImageCharColVal||IMAGE_SEPARATOR||CharColVal);
811: else
812: jtf_dbstream_utils.writeString(ImageCharColVal||IMAGE_SEPARATOR);
813: end if;
814: end if;
808: j := j + 1;
809: dbms_sql.column_value(tableDefs(tableIndex).SQLCursor, j, CharColVal);
810: jtf_dbstream_utils.writeString(ImageCharColVal||IMAGE_SEPARATOR||CharColVal);
811: else
812: jtf_dbstream_utils.writeString(ImageCharColVal||IMAGE_SEPARATOR);
813: end if;
814: end if;
815: j := j + 1;
816: end loop;
821: -- dbms_sql.close_cursor(tableDefs(tableIndex).SQLCursor);
822: return null;
823: end if;
824: -- CURSOR MGMT REWRITE END
825: if jtf_dbstream_utils.isLongOutputStream then
826: handleErrors(MAXLENGTH_EXCEEDED_ERROR,'execSQL',gridName,
827: ' SQL Statement being executed: <'||nvl(tableDefs(tableIndex).SQLStatement,nullValue)||'>'||lineFeed
828: ,null);
829: end if;
826: handleErrors(MAXLENGTH_EXCEEDED_ERROR,'execSQL',gridName,
827: ' SQL Statement being executed: <'||nvl(tableDefs(tableIndex).SQLStatement,nullValue)||'>'||lineFeed
828: ,null);
829: end if;
830: return jtf_dbstream_utils.getOutputStream;
831: exception
832: when others then
833: if dbms_sql.is_open(tableDefs(tableIndex).SQLCursor) then
834: dbms_sql.close_cursor(tableDefs(tableIndex).SQLCursor);
877: for i in 1..nvl(tableDefs(j).fetchSize, fetchSize) loop
878: tempRec := execSQL(gridName,j);
879: if tempRec is not null then
880: rowCount := rowCount + 1;
881: jtf_dbstream_utils.clearOutputStream;
882: -- 02/28/01 commented out the rowCount to enable inserts/deletes into the
883: -- spreadtable. The midtier will add this to the stream before it sends it
884: -- off to the client.
885: -- jtf_dbstream_utils.writeInt(rowCount);
881: jtf_dbstream_utils.clearOutputStream;
882: -- 02/28/01 commented out the rowCount to enable inserts/deletes into the
883: -- spreadtable. The midtier will add this to the stream before it sends it
884: -- off to the client.
885: -- jtf_dbstream_utils.writeInt(rowCount);
886: jtf_dbstream_utils.writeString(recVersion);
887: jtf_dbstream_utils.writeString(colCount);
888: if jtf_dbstream_utils.isLongOutputStream then
889: handleErrors(MAXLENGTH_EXCEEDED_ERROR,'fetchDataSet',gridName,
882: -- 02/28/01 commented out the rowCount to enable inserts/deletes into the
883: -- spreadtable. The midtier will add this to the stream before it sends it
884: -- off to the client.
885: -- jtf_dbstream_utils.writeInt(rowCount);
886: jtf_dbstream_utils.writeString(recVersion);
887: jtf_dbstream_utils.writeString(colCount);
888: if jtf_dbstream_utils.isLongOutputStream then
889: handleErrors(MAXLENGTH_EXCEEDED_ERROR,'fetchDataSet',gridName,
890: ' SQL Statement being executed: <'||nvl(tableDefs(j).SQLStatement,nullValue)||'>'||lineFeed
883: -- spreadtable. The midtier will add this to the stream before it sends it
884: -- off to the client.
885: -- jtf_dbstream_utils.writeInt(rowCount);
886: jtf_dbstream_utils.writeString(recVersion);
887: jtf_dbstream_utils.writeString(colCount);
888: if jtf_dbstream_utils.isLongOutputStream then
889: handleErrors(MAXLENGTH_EXCEEDED_ERROR,'fetchDataSet',gridName,
890: ' SQL Statement being executed: <'||nvl(tableDefs(j).SQLStatement,nullValue)||'>'||lineFeed
891: ,null);
884: -- off to the client.
885: -- jtf_dbstream_utils.writeInt(rowCount);
886: jtf_dbstream_utils.writeString(recVersion);
887: jtf_dbstream_utils.writeString(colCount);
888: if jtf_dbstream_utils.isLongOutputStream then
889: handleErrors(MAXLENGTH_EXCEEDED_ERROR,'fetchDataSet',gridName,
890: ' SQL Statement being executed: <'||nvl(tableDefs(j).SQLStatement,nullValue)||'>'||lineFeed
891: ,null);
892: end if;
891: ,null);
892: end if;
893: -- don't write tempRec to the stream, as it is already
894: -- formatted by execSQL
895: dataSet(i) := jtf_dbstream_utils.getOutputStream||tempRec;
896: else
897: tableDefs(j).moreRowsExists := 'F';
898: exit;
899: end if;
1448: end if;
1449: if tableDefs(tableIndex).grid_sort_col_alias3 is not null then
1450: sortCols := sortCols + 1;
1451: end if;
1452: jtf_dbstream_utils.writeInt(sortCols);
1453: if tableDefs(tableIndex).grid_sort_col_alias3 is not null then
1454: jtf_dbstream_utils.writeInt(findColumnIndex(gridName,tableDefs(tableIndex).grid_sort_col_alias3) - 1); -- -1 since we need a 0 based index
1455: if includeSortDirection then
1456: j := findColumnDefIndex(gridName,tableDefs(tableIndex).grid_sort_col_alias3);
1450: sortCols := sortCols + 1;
1451: end if;
1452: jtf_dbstream_utils.writeInt(sortCols);
1453: if tableDefs(tableIndex).grid_sort_col_alias3 is not null then
1454: jtf_dbstream_utils.writeInt(findColumnIndex(gridName,tableDefs(tableIndex).grid_sort_col_alias3) - 1); -- -1 since we need a 0 based index
1455: if includeSortDirection then
1456: j := findColumnDefIndex(gridName,tableDefs(tableIndex).grid_sort_col_alias3);
1457: if j is not null then
1458: jtf_dbstream_utils.writeString(columnDefs(j).sort_asc_by_default_flag);
1454: jtf_dbstream_utils.writeInt(findColumnIndex(gridName,tableDefs(tableIndex).grid_sort_col_alias3) - 1); -- -1 since we need a 0 based index
1455: if includeSortDirection then
1456: j := findColumnDefIndex(gridName,tableDefs(tableIndex).grid_sort_col_alias3);
1457: if j is not null then
1458: jtf_dbstream_utils.writeString(columnDefs(j).sort_asc_by_default_flag);
1459: else
1460: -- redundant, this was checked in validateSortColumns, but for good measure....
1461: handleErrors(ILLEGAL_SORT_COLUMN_ERROR,'serializeSortOrder',tableIndex,tableDefs(tableIndex).grid_sort_col_alias3,null);
1462: end if;
1463: end if;
1464: sortCols := sortCols + 1;
1465: end if;
1466: if tableDefs(tableIndex).grid_sort_col_alias2 is not null then
1467: jtf_dbstream_utils.writeInt(findColumnIndex(gridName,tableDefs(tableIndex).grid_sort_col_alias2) - 1); -- -1 since we need a 0 based index
1468: if includeSortDirection then
1469: j := findColumnDefIndex(gridName,tableDefs(tableIndex).grid_sort_col_alias2);
1470: if j is not null then
1471: jtf_dbstream_utils.writeString(columnDefs(j).sort_asc_by_default_flag);
1467: jtf_dbstream_utils.writeInt(findColumnIndex(gridName,tableDefs(tableIndex).grid_sort_col_alias2) - 1); -- -1 since we need a 0 based index
1468: if includeSortDirection then
1469: j := findColumnDefIndex(gridName,tableDefs(tableIndex).grid_sort_col_alias2);
1470: if j is not null then
1471: jtf_dbstream_utils.writeString(columnDefs(j).sort_asc_by_default_flag);
1472: else
1473: -- redundant, this was checked in validateSortColumns, but for good measure....
1474: handleErrors(ILLEGAL_SORT_COLUMN_ERROR,'serializeSortOrder',tableIndex,tableDefs(tableIndex).grid_sort_col_alias2,null);
1475: end if;
1476: end if;
1477: sortCols := sortCols + 1;
1478: end if;
1479: if tableDefs(tableIndex).grid_sort_col_alias1 is not null then
1480: jtf_dbstream_utils.writeInt(findColumnIndex(gridName,tableDefs(tableIndex).grid_sort_col_alias1) - 1); -- -1 since we need a 0 based index
1481: if includeSortDirection then
1482: j := findColumnDefIndex(gridName,tableDefs(tableIndex).grid_sort_col_alias1);
1483: if j is not null then
1484: jtf_dbstream_utils.writeString(columnDefs(j).sort_asc_by_default_flag);
1480: jtf_dbstream_utils.writeInt(findColumnIndex(gridName,tableDefs(tableIndex).grid_sort_col_alias1) - 1); -- -1 since we need a 0 based index
1481: if includeSortDirection then
1482: j := findColumnDefIndex(gridName,tableDefs(tableIndex).grid_sort_col_alias1);
1483: if j is not null then
1484: jtf_dbstream_utils.writeString(columnDefs(j).sort_asc_by_default_flag);
1485: else
1486: -- redundant, this was checked in validateSortColumns, but for good measure....
1487: handleErrors(ILLEGAL_SORT_COLUMN_ERROR,'serializeSortOrder',tableIndex,tableDefs(tableIndex).grid_sort_col_alias1,null);
1488: end if;
1495: -- Build and return a string representing the serialized form of the spreadtable Meta Data
1496: procedure getSerializedTableDef(gridName in varchar2
1497: ,dataSource in varchar2
1498: ,tableIndex out nocopy binary_integer
1499: ,outPutStream out NOCOPY jtf_dbstream_utils.streamType) is
1500:
1501: INVALID_DATASOURCE exception;
1502: i binary_integer;
1503: j binary_integer;
1507: endPos integer;
1508: begin
1509: if gridName is null
1510: or dataSource is null then
1511: jtf_dbstream_utils.clearOutputStream;
1512: outPutStream := jtf_dbstream_utils.getLongOutputStream;
1513: tableIndex := null;
1514: end if;
1515: i := findTableDefIndex(gridName);
1508: begin
1509: if gridName is null
1510: or dataSource is null then
1511: jtf_dbstream_utils.clearOutputStream;
1512: outPutStream := jtf_dbstream_utils.getLongOutputStream;
1513: tableIndex := null;
1514: end if;
1515: i := findTableDefIndex(gridName);
1516: if i is null then
1519: if i is null then
1520: raise INVALID_DATASOURCE;
1521: end if;
1522:
1523: jtf_dbstream_utils.clearOutputStream;
1524: -- SERIALIZE THE TABLEDEF
1525: jtf_dbstream_utils.writeString(tabVersion);
1526: -- Boolean to indicate whether the spreadtable is being initialized
1527: -- using an end users customizations.
1521: end if;
1522:
1523: jtf_dbstream_utils.clearOutputStream;
1524: -- SERIALIZE THE TABLEDEF
1525: jtf_dbstream_utils.writeString(tabVersion);
1526: -- Boolean to indicate whether the spreadtable is being initialized
1527: -- using an end users customizations.
1528: if tableDefs(i).custom_grid_id is null then
1529: jtf_dbstream_utils.writeBoolean(false);
1525: jtf_dbstream_utils.writeString(tabVersion);
1526: -- Boolean to indicate whether the spreadtable is being initialized
1527: -- using an end users customizations.
1528: if tableDefs(i).custom_grid_id is null then
1529: jtf_dbstream_utils.writeBoolean(false);
1530: else
1531: jtf_dbstream_utils.writeBoolean(true);
1532: end if;
1533: -- HACK UP THE COLOR CODE IN THREE PARTS (R,G,B)
1527: -- using an end users customizations.
1528: if tableDefs(i).custom_grid_id is null then
1529: jtf_dbstream_utils.writeBoolean(false);
1530: else
1531: jtf_dbstream_utils.writeBoolean(true);
1532: end if;
1533: -- HACK UP THE COLOR CODE IN THREE PARTS (R,G,B)
1534: startPos := 1;
1535: for x in 1..2 loop
1533: -- HACK UP THE COLOR CODE IN THREE PARTS (R,G,B)
1534: startPos := 1;
1535: for x in 1..2 loop
1536: endPos := instr(tableDefs(i).alt_color_code,',',startPos);
1537: jtf_dbstream_utils.writeString(substr(tableDefs(i).alt_color_code,startPos,endPos-startPos));
1538: startPos := endPos + 1;
1539: end loop;
1540: jtf_dbstream_utils.writeString(substr(tableDefs(i).alt_color_code,startPos));
1541: -- END COLOR CODE
1536: endPos := instr(tableDefs(i).alt_color_code,',',startPos);
1537: jtf_dbstream_utils.writeString(substr(tableDefs(i).alt_color_code,startPos,endPos-startPos));
1538: startPos := endPos + 1;
1539: end loop;
1540: jtf_dbstream_utils.writeString(substr(tableDefs(i).alt_color_code,startPos));
1541: -- END COLOR CODE
1542: jtf_dbstream_utils.writeInt(tableDefs(i).alt_color_interval);
1543: jtf_dbstream_utils.writeInt(tableDefs(i).default_row_height);
1544: jtf_dbstream_utils.writeString(tableDefs(i).title_text);
1538: startPos := endPos + 1;
1539: end loop;
1540: jtf_dbstream_utils.writeString(substr(tableDefs(i).alt_color_code,startPos));
1541: -- END COLOR CODE
1542: jtf_dbstream_utils.writeInt(tableDefs(i).alt_color_interval);
1543: jtf_dbstream_utils.writeInt(tableDefs(i).default_row_height);
1544: jtf_dbstream_utils.writeString(tableDefs(i).title_text);
1545: jtf_dbstream_utils.writeInt(tableDefs(i).colCount);
1546: -- END TABLEDEF
1539: end loop;
1540: jtf_dbstream_utils.writeString(substr(tableDefs(i).alt_color_code,startPos));
1541: -- END COLOR CODE
1542: jtf_dbstream_utils.writeInt(tableDefs(i).alt_color_interval);
1543: jtf_dbstream_utils.writeInt(tableDefs(i).default_row_height);
1544: jtf_dbstream_utils.writeString(tableDefs(i).title_text);
1545: jtf_dbstream_utils.writeInt(tableDefs(i).colCount);
1546: -- END TABLEDEF
1547:
1540: jtf_dbstream_utils.writeString(substr(tableDefs(i).alt_color_code,startPos));
1541: -- END COLOR CODE
1542: jtf_dbstream_utils.writeInt(tableDefs(i).alt_color_interval);
1543: jtf_dbstream_utils.writeInt(tableDefs(i).default_row_height);
1544: jtf_dbstream_utils.writeString(tableDefs(i).title_text);
1545: jtf_dbstream_utils.writeInt(tableDefs(i).colCount);
1546: -- END TABLEDEF
1547:
1548: if not isTabColsInMemory(gridName) then
1541: -- END COLOR CODE
1542: jtf_dbstream_utils.writeInt(tableDefs(i).alt_color_interval);
1543: jtf_dbstream_utils.writeInt(tableDefs(i).default_row_height);
1544: jtf_dbstream_utils.writeString(tableDefs(i).title_text);
1545: jtf_dbstream_utils.writeInt(tableDefs(i).colCount);
1546: -- END TABLEDEF
1547:
1548: if not isTabColsInMemory(gridName) then
1549: getColDefsFromDB(gridName,dataSource,i);
1551: j := findNextColumnDefIndex(gridName,0);
1552:
1553: -- SERIALIZE THE COLDEF
1554: while j is not null loop
1555: jtf_dbstream_utils.writeString(colDefVersion);
1556: jtf_dbstream_utils.writeString(columnDefs(j).grid_col_alias);
1557: jtf_dbstream_utils.writeInt(columnDefs(j).display_hsize);
1558: jtf_dbstream_utils.writeString(columnDefs(j).label_text);
1559: jtf_dbstream_utils.writeString(columnDefs(j).header_alignment_code);
1552:
1553: -- SERIALIZE THE COLDEF
1554: while j is not null loop
1555: jtf_dbstream_utils.writeString(colDefVersion);
1556: jtf_dbstream_utils.writeString(columnDefs(j).grid_col_alias);
1557: jtf_dbstream_utils.writeInt(columnDefs(j).display_hsize);
1558: jtf_dbstream_utils.writeString(columnDefs(j).label_text);
1559: jtf_dbstream_utils.writeString(columnDefs(j).header_alignment_code);
1560: jtf_dbstream_utils.writeString(columnDefs(j).cell_alignment_code);
1553: -- SERIALIZE THE COLDEF
1554: while j is not null loop
1555: jtf_dbstream_utils.writeString(colDefVersion);
1556: jtf_dbstream_utils.writeString(columnDefs(j).grid_col_alias);
1557: jtf_dbstream_utils.writeInt(columnDefs(j).display_hsize);
1558: jtf_dbstream_utils.writeString(columnDefs(j).label_text);
1559: jtf_dbstream_utils.writeString(columnDefs(j).header_alignment_code);
1560: jtf_dbstream_utils.writeString(columnDefs(j).cell_alignment_code);
1561: jtf_dbstream_utils.writeString(columnDefs(j).data_type_code);
1554: while j is not null loop
1555: jtf_dbstream_utils.writeString(colDefVersion);
1556: jtf_dbstream_utils.writeString(columnDefs(j).grid_col_alias);
1557: jtf_dbstream_utils.writeInt(columnDefs(j).display_hsize);
1558: jtf_dbstream_utils.writeString(columnDefs(j).label_text);
1559: jtf_dbstream_utils.writeString(columnDefs(j).header_alignment_code);
1560: jtf_dbstream_utils.writeString(columnDefs(j).cell_alignment_code);
1561: jtf_dbstream_utils.writeString(columnDefs(j).data_type_code);
1562: jtf_dbstream_utils.writeInt(columnDefs(j).display_index);
1555: jtf_dbstream_utils.writeString(colDefVersion);
1556: jtf_dbstream_utils.writeString(columnDefs(j).grid_col_alias);
1557: jtf_dbstream_utils.writeInt(columnDefs(j).display_hsize);
1558: jtf_dbstream_utils.writeString(columnDefs(j).label_text);
1559: jtf_dbstream_utils.writeString(columnDefs(j).header_alignment_code);
1560: jtf_dbstream_utils.writeString(columnDefs(j).cell_alignment_code);
1561: jtf_dbstream_utils.writeString(columnDefs(j).data_type_code);
1562: jtf_dbstream_utils.writeInt(columnDefs(j).display_index);
1563: jtf_dbstream_utils.writeString(columnDefs(j).checkbox_checked_value);
1556: jtf_dbstream_utils.writeString(columnDefs(j).grid_col_alias);
1557: jtf_dbstream_utils.writeInt(columnDefs(j).display_hsize);
1558: jtf_dbstream_utils.writeString(columnDefs(j).label_text);
1559: jtf_dbstream_utils.writeString(columnDefs(j).header_alignment_code);
1560: jtf_dbstream_utils.writeString(columnDefs(j).cell_alignment_code);
1561: jtf_dbstream_utils.writeString(columnDefs(j).data_type_code);
1562: jtf_dbstream_utils.writeInt(columnDefs(j).display_index);
1563: jtf_dbstream_utils.writeString(columnDefs(j).checkbox_checked_value);
1564: jtf_dbstream_utils.writeString(columnDefs(j).checkbox_unchecked_value);
1557: jtf_dbstream_utils.writeInt(columnDefs(j).display_hsize);
1558: jtf_dbstream_utils.writeString(columnDefs(j).label_text);
1559: jtf_dbstream_utils.writeString(columnDefs(j).header_alignment_code);
1560: jtf_dbstream_utils.writeString(columnDefs(j).cell_alignment_code);
1561: jtf_dbstream_utils.writeString(columnDefs(j).data_type_code);
1562: jtf_dbstream_utils.writeInt(columnDefs(j).display_index);
1563: jtf_dbstream_utils.writeString(columnDefs(j).checkbox_checked_value);
1564: jtf_dbstream_utils.writeString(columnDefs(j).checkbox_unchecked_value);
1565: jtf_dbstream_utils.writeString(columnDefs(j).checkbox_other_values);
1558: jtf_dbstream_utils.writeString(columnDefs(j).label_text);
1559: jtf_dbstream_utils.writeString(columnDefs(j).header_alignment_code);
1560: jtf_dbstream_utils.writeString(columnDefs(j).cell_alignment_code);
1561: jtf_dbstream_utils.writeString(columnDefs(j).data_type_code);
1562: jtf_dbstream_utils.writeInt(columnDefs(j).display_index);
1563: jtf_dbstream_utils.writeString(columnDefs(j).checkbox_checked_value);
1564: jtf_dbstream_utils.writeString(columnDefs(j).checkbox_unchecked_value);
1565: jtf_dbstream_utils.writeString(columnDefs(j).checkbox_other_values);
1566: jtf_dbstream_utils.writeString(columnDefs(j).display_type_code);
1559: jtf_dbstream_utils.writeString(columnDefs(j).header_alignment_code);
1560: jtf_dbstream_utils.writeString(columnDefs(j).cell_alignment_code);
1561: jtf_dbstream_utils.writeString(columnDefs(j).data_type_code);
1562: jtf_dbstream_utils.writeInt(columnDefs(j).display_index);
1563: jtf_dbstream_utils.writeString(columnDefs(j).checkbox_checked_value);
1564: jtf_dbstream_utils.writeString(columnDefs(j).checkbox_unchecked_value);
1565: jtf_dbstream_utils.writeString(columnDefs(j).checkbox_other_values);
1566: jtf_dbstream_utils.writeString(columnDefs(j).display_type_code);
1567: jtf_dbstream_utils.writeString(columnDefs(j).visible_flag);
1560: jtf_dbstream_utils.writeString(columnDefs(j).cell_alignment_code);
1561: jtf_dbstream_utils.writeString(columnDefs(j).data_type_code);
1562: jtf_dbstream_utils.writeInt(columnDefs(j).display_index);
1563: jtf_dbstream_utils.writeString(columnDefs(j).checkbox_checked_value);
1564: jtf_dbstream_utils.writeString(columnDefs(j).checkbox_unchecked_value);
1565: jtf_dbstream_utils.writeString(columnDefs(j).checkbox_other_values);
1566: jtf_dbstream_utils.writeString(columnDefs(j).display_type_code);
1567: jtf_dbstream_utils.writeString(columnDefs(j).visible_flag);
1568: jtf_dbstream_utils.writeString(columnDefs(j).freeze_visible_flag);
1561: jtf_dbstream_utils.writeString(columnDefs(j).data_type_code);
1562: jtf_dbstream_utils.writeInt(columnDefs(j).display_index);
1563: jtf_dbstream_utils.writeString(columnDefs(j).checkbox_checked_value);
1564: jtf_dbstream_utils.writeString(columnDefs(j).checkbox_unchecked_value);
1565: jtf_dbstream_utils.writeString(columnDefs(j).checkbox_other_values);
1566: jtf_dbstream_utils.writeString(columnDefs(j).display_type_code);
1567: jtf_dbstream_utils.writeString(columnDefs(j).visible_flag);
1568: jtf_dbstream_utils.writeString(columnDefs(j).freeze_visible_flag);
1569: jtf_dbstream_utils.writeString(columnDefs(j).sortable_flag);
1562: jtf_dbstream_utils.writeInt(columnDefs(j).display_index);
1563: jtf_dbstream_utils.writeString(columnDefs(j).checkbox_checked_value);
1564: jtf_dbstream_utils.writeString(columnDefs(j).checkbox_unchecked_value);
1565: jtf_dbstream_utils.writeString(columnDefs(j).checkbox_other_values);
1566: jtf_dbstream_utils.writeString(columnDefs(j).display_type_code);
1567: jtf_dbstream_utils.writeString(columnDefs(j).visible_flag);
1568: jtf_dbstream_utils.writeString(columnDefs(j).freeze_visible_flag);
1569: jtf_dbstream_utils.writeString(columnDefs(j).sortable_flag);
1570: jtf_dbstream_utils.writeString(columnDefs(j).sort_asc_by_default_flag);
1563: jtf_dbstream_utils.writeString(columnDefs(j).checkbox_checked_value);
1564: jtf_dbstream_utils.writeString(columnDefs(j).checkbox_unchecked_value);
1565: jtf_dbstream_utils.writeString(columnDefs(j).checkbox_other_values);
1566: jtf_dbstream_utils.writeString(columnDefs(j).display_type_code);
1567: jtf_dbstream_utils.writeString(columnDefs(j).visible_flag);
1568: jtf_dbstream_utils.writeString(columnDefs(j).freeze_visible_flag);
1569: jtf_dbstream_utils.writeString(columnDefs(j).sortable_flag);
1570: jtf_dbstream_utils.writeString(columnDefs(j).sort_asc_by_default_flag);
1571: j := findNextColumnDefIndex(gridName,j);
1564: jtf_dbstream_utils.writeString(columnDefs(j).checkbox_unchecked_value);
1565: jtf_dbstream_utils.writeString(columnDefs(j).checkbox_other_values);
1566: jtf_dbstream_utils.writeString(columnDefs(j).display_type_code);
1567: jtf_dbstream_utils.writeString(columnDefs(j).visible_flag);
1568: jtf_dbstream_utils.writeString(columnDefs(j).freeze_visible_flag);
1569: jtf_dbstream_utils.writeString(columnDefs(j).sortable_flag);
1570: jtf_dbstream_utils.writeString(columnDefs(j).sort_asc_by_default_flag);
1571: j := findNextColumnDefIndex(gridName,j);
1572: end loop;
1565: jtf_dbstream_utils.writeString(columnDefs(j).checkbox_other_values);
1566: jtf_dbstream_utils.writeString(columnDefs(j).display_type_code);
1567: jtf_dbstream_utils.writeString(columnDefs(j).visible_flag);
1568: jtf_dbstream_utils.writeString(columnDefs(j).freeze_visible_flag);
1569: jtf_dbstream_utils.writeString(columnDefs(j).sortable_flag);
1570: jtf_dbstream_utils.writeString(columnDefs(j).sort_asc_by_default_flag);
1571: j := findNextColumnDefIndex(gridName,j);
1572: end loop;
1573: -- END COLDEF
1566: jtf_dbstream_utils.writeString(columnDefs(j).display_type_code);
1567: jtf_dbstream_utils.writeString(columnDefs(j).visible_flag);
1568: jtf_dbstream_utils.writeString(columnDefs(j).freeze_visible_flag);
1569: jtf_dbstream_utils.writeString(columnDefs(j).sortable_flag);
1570: jtf_dbstream_utils.writeString(columnDefs(j).sort_asc_by_default_flag);
1571: j := findNextColumnDefIndex(gridName,j);
1572: end loop;
1573: -- END COLDEF
1574:
1594: -- end if;
1595: -- if tableDefs(i).grid_sort_col_alias3 is not null then
1596: -- sortCols := sortCols + 1;
1597: -- end if;
1598: -- jtf_dbstream_utils.writeInt(sortCols);
1599: -- if tableDefs(i).grid_sort_col_alias3 is not null then
1600: -- jtf_dbstream_utils.writeInt(findColumnIndex(gridName,tableDefs(i).grid_sort_col_alias3) - 1); -- -1 since we need a 0 based index
1601: -- sortCols := sortCols + 1;
1602: -- end if;
1596: -- sortCols := sortCols + 1;
1597: -- end if;
1598: -- jtf_dbstream_utils.writeInt(sortCols);
1599: -- if tableDefs(i).grid_sort_col_alias3 is not null then
1600: -- jtf_dbstream_utils.writeInt(findColumnIndex(gridName,tableDefs(i).grid_sort_col_alias3) - 1); -- -1 since we need a 0 based index
1601: -- sortCols := sortCols + 1;
1602: -- end if;
1603: -- if tableDefs(i).grid_sort_col_alias2 is not null then
1604: -- jtf_dbstream_utils.writeInt(findColumnIndex(gridName,tableDefs(i).grid_sort_col_alias2) - 1); -- -1 since we need a 0 based index
1600: -- jtf_dbstream_utils.writeInt(findColumnIndex(gridName,tableDefs(i).grid_sort_col_alias3) - 1); -- -1 since we need a 0 based index
1601: -- sortCols := sortCols + 1;
1602: -- end if;
1603: -- if tableDefs(i).grid_sort_col_alias2 is not null then
1604: -- jtf_dbstream_utils.writeInt(findColumnIndex(gridName,tableDefs(i).grid_sort_col_alias2) - 1); -- -1 since we need a 0 based index
1605: -- sortCols := sortCols + 1;
1606: -- end if;
1607: -- if tableDefs(i).grid_sort_col_alias1 is not null then
1608: -- jtf_dbstream_utils.writeInt(findColumnIndex(gridName,tableDefs(i).grid_sort_col_alias1) - 1); -- -1 since we need a 0 based index
1604: -- jtf_dbstream_utils.writeInt(findColumnIndex(gridName,tableDefs(i).grid_sort_col_alias2) - 1); -- -1 since we need a 0 based index
1605: -- sortCols := sortCols + 1;
1606: -- end if;
1607: -- if tableDefs(i).grid_sort_col_alias1 is not null then
1608: -- jtf_dbstream_utils.writeInt(findColumnIndex(gridName,tableDefs(i).grid_sort_col_alias1) - 1); -- -1 since we need a 0 based index
1609: -- sortCols := sortCols + 1;
1610: -- end if;
1611: -- END SORTORDER
1612: tableIndex := i;
1609: -- sortCols := sortCols + 1;
1610: -- end if;
1611: -- END SORTORDER
1612: tableIndex := i;
1613: outPutStream := jtf_dbstream_utils.getLongOutputStream;
1614: exception
1615: when INVALID_DATASOURCE then
1616: handleErrors(INVALID_DATASOURCE_ERROR,'getSerializedTableDef',gridName,dataSource,null);
1617: /* when OTHERS then
1616: handleErrors(INVALID_DATASOURCE_ERROR,'getSerializedTableDef',gridName,dataSource,null);
1617: /* when OTHERS then
1618: handleErrors(INTERNAL_ERROR,'getSerializedTableDef',gridName,
1619: ' dataSource = <'||nvl(dataSource,nullValue)||'>'||lineFeed||
1620: ' stream = <'||nvl(jtf_dbstream_utils.getOutputStream,nullValue)||'>'||lineFeed
1621: ,SQLERRM);
1622: */
1623: end getSerializedTableDef;
1624:
1630: ,customGridId in out nocopy number
1631: ,customGridName in out nocopy varchar2
1632: ,defaultFlag in boolean
1633: ,publicFlag in boolean
1634: ,inputStream jtf_dbstream_utils.streamType
1635: ,successFlag out nocopy boolean
1636: ,p_serverInitDate in date) is
1637:
1638: PRAGMA AUTONOMOUS_TRANSACTION;
1682: if inputStream.COUNT = 0 then
1683: successFlag := false;
1684: return;
1685: elsif inputStream.COUNT = 1 then
1686: jtf_dbstream_utils.setInputStream(inputStream(inputStream.FIRST));
1687: else
1688: jtf_dbstream_utils.setLongInputStream(inputStream);
1689: end if;
1690: --handleErrors(INTERNAL_ERROR,'saveSerializedTableDef',gridName,inputStream(inputStream.FIRST),to_char(inputStream.COUNT));
1684: return;
1685: elsif inputStream.COUNT = 1 then
1686: jtf_dbstream_utils.setInputStream(inputStream(inputStream.FIRST));
1687: else
1688: jtf_dbstream_utils.setLongInputStream(inputStream);
1689: end if;
1690: --handleErrors(INTERNAL_ERROR,'saveSerializedTableDef',gridName,inputStream(inputStream.FIRST),to_char(inputStream.COUNT));
1691:
1692: l_tabVersion := jtf_dbstream_utils.readString;
1688: jtf_dbstream_utils.setLongInputStream(inputStream);
1689: end if;
1690: --handleErrors(INTERNAL_ERROR,'saveSerializedTableDef',gridName,inputStream(inputStream.FIRST),to_char(inputStream.COUNT));
1691:
1692: l_tabVersion := jtf_dbstream_utils.readString;
1693: -- this is the current version
1694: if l_tabVersion = clientTabVersion then
1695: l_default_row_height := jtf_dbstream_utils.readInt;
1696: l_custom_grid_name := nvl(customGridName,USER_UI_DEFAULT_FOLDER); -- Use the default name until phase 2.
1691:
1692: l_tabVersion := jtf_dbstream_utils.readString;
1693: -- this is the current version
1694: if l_tabVersion = clientTabVersion then
1695: l_default_row_height := jtf_dbstream_utils.readInt;
1696: l_custom_grid_name := nvl(customGridName,USER_UI_DEFAULT_FOLDER); -- Use the default name until phase 2.
1697:
1698: sortCount := jtf_dbstream_utils.readInt;
1699: -- Something really fishy has happened, we should always have one sort column.
1694: if l_tabVersion = clientTabVersion then
1695: l_default_row_height := jtf_dbstream_utils.readInt;
1696: l_custom_grid_name := nvl(customGridName,USER_UI_DEFAULT_FOLDER); -- Use the default name until phase 2.
1697:
1698: sortCount := jtf_dbstream_utils.readInt;
1699: -- Something really fishy has happened, we should always have one sort column.
1700: if sortCount = 0 then
1701: l_grid_sort_col_alias1 := tableDefs(i).grid_sort_col_alias1;
1702: end if;
1700: if sortCount = 0 then
1701: l_grid_sort_col_alias1 := tableDefs(i).grid_sort_col_alias1;
1702: end if;
1703: if sortCount > 0 then
1704: l_grid_sort_col_alias1 := findColumnAlias(gridName,(jtf_dbstream_utils.readInt + 1)); -- +1 since this is coming from
1705: end if;
1706: if sortCount > 1 then
1707: l_grid_sort_col_alias2 := findColumnAlias(gridName,(jtf_dbstream_utils.readInt + 1)); -- the client which uses 0 based
1708: end if;
1703: if sortCount > 0 then
1704: l_grid_sort_col_alias1 := findColumnAlias(gridName,(jtf_dbstream_utils.readInt + 1)); -- +1 since this is coming from
1705: end if;
1706: if sortCount > 1 then
1707: l_grid_sort_col_alias2 := findColumnAlias(gridName,(jtf_dbstream_utils.readInt + 1)); -- the client which uses 0 based
1708: end if;
1709: if sortCount > 2 then
1710: l_grid_sort_col_alias3 := findColumnAlias(gridName,(jtf_dbstream_utils.readInt + 1)); -- indexes
1711: end if;
1706: if sortCount > 1 then
1707: l_grid_sort_col_alias2 := findColumnAlias(gridName,(jtf_dbstream_utils.readInt + 1)); -- the client which uses 0 based
1708: end if;
1709: if sortCount > 2 then
1710: l_grid_sort_col_alias3 := findColumnAlias(gridName,(jtf_dbstream_utils.readInt + 1)); -- indexes
1711: end if;
1712: l_where_clause := null; -- null for now, only use the default.
1713:
1714:
1808:
1809: -- END TABLEDEF
1810: -- DESERIALIZE THE COLDEF
1811: for k in 1..tableDefs(i).colCount loop
1812: l_colVersion := jtf_dbstream_utils.readString;
1813: if l_colVersion = clientColDefVersion then
1814: l_grid_col_alias := jtf_dbstream_utils.readString;
1815: l_display_hsize := jtf_dbstream_utils.readInt;
1816: l_label_text := jtf_dbstream_utils.readString;
1810: -- DESERIALIZE THE COLDEF
1811: for k in 1..tableDefs(i).colCount loop
1812: l_colVersion := jtf_dbstream_utils.readString;
1813: if l_colVersion = clientColDefVersion then
1814: l_grid_col_alias := jtf_dbstream_utils.readString;
1815: l_display_hsize := jtf_dbstream_utils.readInt;
1816: l_label_text := jtf_dbstream_utils.readString;
1817: l_display_seq := jtf_dbstream_utils.readInt;
1818: l_visible_flag := jtf_dbstream_utils.readString;
1811: for k in 1..tableDefs(i).colCount loop
1812: l_colVersion := jtf_dbstream_utils.readString;
1813: if l_colVersion = clientColDefVersion then
1814: l_grid_col_alias := jtf_dbstream_utils.readString;
1815: l_display_hsize := jtf_dbstream_utils.readInt;
1816: l_label_text := jtf_dbstream_utils.readString;
1817: l_display_seq := jtf_dbstream_utils.readInt;
1818: l_visible_flag := jtf_dbstream_utils.readString;
1819: l_sort_asc_by_default := jtf_dbstream_utils.readString;
1812: l_colVersion := jtf_dbstream_utils.readString;
1813: if l_colVersion = clientColDefVersion then
1814: l_grid_col_alias := jtf_dbstream_utils.readString;
1815: l_display_hsize := jtf_dbstream_utils.readInt;
1816: l_label_text := jtf_dbstream_utils.readString;
1817: l_display_seq := jtf_dbstream_utils.readInt;
1818: l_visible_flag := jtf_dbstream_utils.readString;
1819: l_sort_asc_by_default := jtf_dbstream_utils.readString;
1820:
1813: if l_colVersion = clientColDefVersion then
1814: l_grid_col_alias := jtf_dbstream_utils.readString;
1815: l_display_hsize := jtf_dbstream_utils.readInt;
1816: l_label_text := jtf_dbstream_utils.readString;
1817: l_display_seq := jtf_dbstream_utils.readInt;
1818: l_visible_flag := jtf_dbstream_utils.readString;
1819: l_sort_asc_by_default := jtf_dbstream_utils.readString;
1820:
1821: open folderColumnExists(l_custom_grid_id,datasource,l_grid_col_alias);
1814: l_grid_col_alias := jtf_dbstream_utils.readString;
1815: l_display_hsize := jtf_dbstream_utils.readInt;
1816: l_label_text := jtf_dbstream_utils.readString;
1817: l_display_seq := jtf_dbstream_utils.readInt;
1818: l_visible_flag := jtf_dbstream_utils.readString;
1819: l_sort_asc_by_default := jtf_dbstream_utils.readString;
1820:
1821: open folderColumnExists(l_custom_grid_id,datasource,l_grid_col_alias);
1822: fetch folderColumnExists into folder_col_label;
1815: l_display_hsize := jtf_dbstream_utils.readInt;
1816: l_label_text := jtf_dbstream_utils.readString;
1817: l_display_seq := jtf_dbstream_utils.readInt;
1818: l_visible_flag := jtf_dbstream_utils.readString;
1819: l_sort_asc_by_default := jtf_dbstream_utils.readString;
1820:
1821: open folderColumnExists(l_custom_grid_id,datasource,l_grid_col_alias);
1822: fetch folderColumnExists into folder_col_label;
1823:
2085: procedure init(gridName in varchar2
2086: ,dataSource in varchar2
2087: ,customGridId in out nocopy number
2088: ,customGridName in out nocopy varchar2
2089: ,outPutStream out nocopy jtf_dbstream_utils.streamType
2090: ,x_serverInitDate out nocopy date ) is
2091: i binary_integer;
2092: begin
2093: x_serverInitDate := serverInitDate;
2415: end if;
2416: if propertyType = 'TITLE_TEXT' then
2417: return tableDefs(i).title_text;
2418: elsif propertyType = 'SERIALIZED_SORT_ORDER' then
2419: jtf_dbstream_utils.clearOutputStream;
2420: serializeSortOrder(gridName,i,true);
2421: -- we can safely do this as there is no way the stream can exceed 32k
2422: return jtf_dbstream_utils.getOutputStream;
2423:
2418: elsif propertyType = 'SERIALIZED_SORT_ORDER' then
2419: jtf_dbstream_utils.clearOutputStream;
2420: serializeSortOrder(gridName,i,true);
2421: -- we can safely do this as there is no way the stream can exceed 32k
2422: return jtf_dbstream_utils.getOutputStream;
2423:
2424: elsif propertyType = 'ALL_BIND_VARIABLES' then
2425:
2426: jtf_dbstream_utils.clearOutputStream;
2422: return jtf_dbstream_utils.getOutputStream;
2423:
2424: elsif propertyType = 'ALL_BIND_VARIABLES' then
2425:
2426: jtf_dbstream_utils.clearOutputStream;
2427: -- the first value will be the number of bind variables that are
2428: -- being passed.
2429:
2430: jtf_dbstream_utils.writeNumber(bindVariablesCount(gridName));
2426: jtf_dbstream_utils.clearOutputStream;
2427: -- the first value will be the number of bind variables that are
2428: -- being passed.
2429:
2430: jtf_dbstream_utils.writeNumber(bindVariablesCount(gridName));
2431:
2432: if bindVariables.COUNT <> 0 then
2433: j := findNextBindVariable(gridName,null);
2434:
2432: if bindVariables.COUNT <> 0 then
2433: j := findNextBindVariable(gridName,null);
2434:
2435: while j is not null loop
2436: jtf_dbstream_utils.writeString(bindVariables(j).variableName);
2437: jtf_dbstream_utils.writeString(bindVariables(j).variableDataType);
2438: if bindVariables(j).variableDataType = 'C' then
2439: jtf_dbstream_utils.writeString(bindVariables(j).variableCharValue);
2440: elsif bindVariables(j).variableDataType = 'N' then
2433: j := findNextBindVariable(gridName,null);
2434:
2435: while j is not null loop
2436: jtf_dbstream_utils.writeString(bindVariables(j).variableName);
2437: jtf_dbstream_utils.writeString(bindVariables(j).variableDataType);
2438: if bindVariables(j).variableDataType = 'C' then
2439: jtf_dbstream_utils.writeString(bindVariables(j).variableCharValue);
2440: elsif bindVariables(j).variableDataType = 'N' then
2441: jtf_dbstream_utils.writeNumber(bindVariables(j).variableNumberValue);
2435: while j is not null loop
2436: jtf_dbstream_utils.writeString(bindVariables(j).variableName);
2437: jtf_dbstream_utils.writeString(bindVariables(j).variableDataType);
2438: if bindVariables(j).variableDataType = 'C' then
2439: jtf_dbstream_utils.writeString(bindVariables(j).variableCharValue);
2440: elsif bindVariables(j).variableDataType = 'N' then
2441: jtf_dbstream_utils.writeNumber(bindVariables(j).variableNumberValue);
2442: elsif bindVariables(j).variableDataType = 'D' then
2443: jtf_dbstream_utils.writeDateTime(bindVariables(j).variableDateValue);
2437: jtf_dbstream_utils.writeString(bindVariables(j).variableDataType);
2438: if bindVariables(j).variableDataType = 'C' then
2439: jtf_dbstream_utils.writeString(bindVariables(j).variableCharValue);
2440: elsif bindVariables(j).variableDataType = 'N' then
2441: jtf_dbstream_utils.writeNumber(bindVariables(j).variableNumberValue);
2442: elsif bindVariables(j).variableDataType = 'D' then
2443: jtf_dbstream_utils.writeDateTime(bindVariables(j).variableDateValue);
2444: end if;
2445:
2439: jtf_dbstream_utils.writeString(bindVariables(j).variableCharValue);
2440: elsif bindVariables(j).variableDataType = 'N' then
2441: jtf_dbstream_utils.writeNumber(bindVariables(j).variableNumberValue);
2442: elsif bindVariables(j).variableDataType = 'D' then
2443: jtf_dbstream_utils.writeDateTime(bindVariables(j).variableDateValue);
2444: end if;
2445:
2446: j := findNextBindVariable(gridName,j);
2447:
2446: j := findNextBindVariable(gridName,j);
2447:
2448: end loop;
2449: end if;
2450: if jtf_dbstream_utils.isLongOutputStream then
2451: handleErrors(MAXLENGTH_EXCEEDED_ERROR,'getCharProperty',
2452: gridName,' Get all bind variables'||lineFeed,null);
2453: end if;
2454: return jtf_dbstream_utils.getOutputStream;
2450: if jtf_dbstream_utils.isLongOutputStream then
2451: handleErrors(MAXLENGTH_EXCEEDED_ERROR,'getCharProperty',
2452: gridName,' Get all bind variables'||lineFeed,null);
2453: end if;
2454: return jtf_dbstream_utils.getOutputStream;
2455:
2456: else
2457: raise INVALID_PROPERTY;
2458: end if;
2716: l_debug_tbl(i).debug_message := JTF_GRIDDB.getVersion;
2717: i := i + 1;
2718: l_debug_tbl(i).debug_message := JTF_DBSTRING_UTILS.getVersion;
2719: i := i + 1;
2720: l_debug_tbl(i).debug_message := JTF_DBSTREAM_UTILS.getVersion;
2721: i := i + 1;
2722: l_debug_tbl(i).debug_message := JTF_DEBUG_PUB.getVersion;
2723: i := i + 1;
2724: l_debug_tbl(i).debug_message := ' ';