#!/usr/pkg/bin/perl
# API status document
#
# $Id: api_status.txt,v 1.65 2010/12/31 16:34:15 jklowden Exp $s
#
# This tab-delimited file is a database of the "readiness" of the various
# APIs. Please feel free to modify it if you notice something is missing or
# wrong or incomplete.
#
# Format rules
#
# 1. Fields are delimited with one or more tab characters.
# Multiple consecutive tabs make hand editing easier; they
# do not delimit null fields.
# 2. The first column must be one of: 'odbc', 'dblib', 'ctlib'.
# Lines starting with *anything* else are ignored.
# 3. Field definitions are:
# Library: odbc, dblib, or ctlib
# Category: chunk of api functionality (bcp/cursors/etc.)
# Name[1,2]: self-explanatory
# For db-lib, there are two names:
# Name 1: Microsoft's name
# Name 2: Sybase's name
# Status: *OK thought to be working
# *stub present but non-functional
# *partial parts thought to be working
# *(blank) Mentioned in vendor documentation but
# not in the FreeTDS C code.
# Other statuses are acceptable if you see a need.
# Comments: Whatever you'd like to say about the function.
#
# This little bit of perl will produce a data file suitable for uploading into a table thus:
# create table api
# ( vendor char(15) NOT NULL
# , name char(15) NOT NULL
# , section char(15) NULL
# , function varchar(30) NOT NULL
# , status char(20) NULL
# , comment varchar(160) NULL
# )
# create view vapi
# as
#
# select *, Total - OK as ToDo, 100 * OK / Total as 'Done%'
# from (
# select name
# , count(*) as Total
# , sum(case status when 'OK'
# then 1 else 0 end) as OK
# , sum(case status when 'partial'
# then 1 else 0 end) as Partial
# , sum(case status when 'stub'
# then 1 else 0 end) as Stub
# from api
# group by name
# ) as API
#
# go
# create view vapisection
# as
#
# select *, Total - OK as ToDo, 100 * OK / Total as 'Done%'
# from (
# select name
# , section
# , count(*) as Total
# , sum(case status when 'OK'
# then 1 else 0 end) as OK
# , sum(case status when 'partial'
# then 1 else 0 end) as Partial
# , sum(case status when 'stub'
# then 1 else 0 end) as Stub
# from api
# group by name, section
# ) as API
#
# go
while( <DATA> ) {
chomp;
next if /^\s*$/; #skip blank lines
@row = split /\t/, $_;
$row[1] =~ s/\(all\)//; #nullify "all"
if( $row[0] eq 'dblib' ) {
@row = split /\t+/, $_;
my @ms = ('Microsoft', @row[0,1,2, 4,5]);
my @sy = ('Sybase', @row[0,1, 3,4,5]);
$sy[3] = $ms[3] if $sy[3] eq '(same)';
Print( @ms ) unless $ms[3] eq 'n/a';
Print( @sy ) unless $sy[3] eq 'n/a';
next;
}
if( $row[0] eq 'ctlib' && @row < 5 ) {
if( length($row[-1]) > 10 ) { # missing status
pop @row;
push @row, ("", $_);
}
}
unshift @row, 'Microsoft' if $row[0] eq 'odbc';
unshift @row, 'Sybase' if $row[0] eq 'ctlib';
Print( @row );
}
sub Print() {
my @row = @_;
while( @row < 6 ) {
push @row, "";
}
print join ("\t", @row), $/;
}
# edit the data below the following line
__DATA__
odbc (all) SQLAllocConnect OK
odbc (all) SQLAllocEnv OK
odbc (all) SQLAllocHandle OK
odbc (all) SQLAllocStmt OK
odbc (all) SQLBindCol OK
odbc (all) SQLBindParam OK
odbc (all) SQLBindParameter OK
odbc (all) SQLBrowseConnect
odbc (all) SQLCancel OK
odbc (all) SQLCloseCursor OK
odbc (all) SQLColAttribute OK
odbc (all) SQLColAttributes OK
odbc (all) SQLColumnPrivileges OK
odbc (all) SQLColumns OK
odbc (all) SQLConnect OK
odbc (all) SQLCopyDesc OK
odbc (all) SQLDescribeCol OK
odbc (all) SQLDescribeParam unimplemented
odbc (all) SQLDisconnect OK
odbc (all) SQLDriverConnect OK
odbc (all) SQLEndTran OK
odbc (all) SQLError OK
odbc (all) SQLExecDirect OK
odbc (all) SQLExecute OK
odbc (all) SQLExtendedFetch OK
odbc (all) SQLFetch OK
odbc (all) SQLFetchScroll OK
odbc (all) SQLForeignKeys OK
odbc (all) SQLFreeConnect OK
odbc (all) SQLFreeEnv OK
odbc (all) SQLFreeHandle OK
odbc (all) SQLFreeStmt OK
odbc (all) SQLGetConnectAttr OK
odbc (all) SQLGetConnectOption OK
odbc (all) SQLGetCursorName OK
odbc (all) SQLGetData OK
odbc (all) SQLGetDescField OK
odbc (all) SQLGetDescRec OK
odbc (all) SQLGetDiagField OK
odbc (all) SQLGetDiagRec OK
odbc (all) SQLGetEnvAttr OK
odbc (all) SQLGetFunctions OK
odbc (all) SQLGetInfo OK
odbc (all) SQLGetStmtAttr OK
odbc (all) SQLGetStmtOption OK
odbc (all) SQLGetTypeInfo OK
odbc (all) SQLMoreResults OK
odbc (all) SQLNativeSql partial
odbc (all) SQLNumParams OK
odbc (all) SQLNumResultCols OK
odbc (all) SQLParamData OK
odbc (all) SQLParamOptions OK
odbc (all) SQLPrepare OK
odbc (all) SQLPrimaryKeys OK
odbc (all) SQLProcedureColumns OK
odbc (all) SQLProcedures OK
odbc (all) SQLPutData OK
odbc (all) SQLRowCount OK
odbc (all) SQLSetConnectAttr OK
odbc (all) SQLSetConnectOption OK
odbc (all) SQLSetCursorName OK
odbc (all) SQLSetDescField OK
odbc (all) SQLSetDescRec OK
odbc (all) SQLSetEnvAttr partial
odbc (all) SQLSetPos OK
odbc (all) SQLSetParam OK
odbc (all) SQLSetScrollOption OK
odbc (all) SQLSetStmtAttr OK
odbc (all) SQLSetStmtOption OK
odbc (all) SQLSpecialColumns OK
odbc (all) SQLStatistics OK
odbc (all) SQLTablePrivileges OK
odbc (all) SQLTables OK
odbc (all) SQLTransact OK
dblib (none) n/a db12hour
dblib (none) n/a dbaltbind_ps
dblib (none) n/a dbbind_ps
dblib (none) n/a dbbufsize
dblib (none) n/a dbcharsetconv
dblib (none) n/a dbcoltypeinfo OK
dblib (none) n/a dbconvert_ps OK
dblib (none) n/a dbfreesort never
dblib (none) n/a dbfree_xlate never
dblib (none) n/a dbgetcharset
dblib (none) n/a dbgetloginfo never
dblib (none) n/a dbgetlusername
dblib (none) n/a dbgetnatlang
dblib (none) n/a DBIORDESC OK
dblib (none) n/a DBIOWDESC OK
dblib (none) n/a dbloadsort never
dblib (none) n/a dbload_xlate never
dblib (none) n/a dbnpcreate never
dblib (none) n/a dbnpdefine never
dblib (none) n/a dbpoll
dblib (none) n/a DBRBUF never
dblib (none) n/a dbreadpage never
dblib (none) n/a dbrecftos OK
dblib (none) n/a dbrecvpassthru never
dblib (none) n/a dbregdrop never
dblib (none) n/a dbregexec never
dblib (none) n/a dbreghandle never
dblib (none) n/a dbreginit never
dblib (none) n/a dbreglist never
dblib (none) n/a dbregnowatch never
dblib (none) n/a dbregparam never
dblib (none) n/a dbregwatch never
dblib (none) n/a dbregwatchlist never
dblib (none) n/a dbrpwclr never
dblib (none) n/a dbrpwset never
dblib (none) n/a dbsafestr OK
dblib (none) n/a dbsechandle
dblib (none) n/a dbsendpassthru never
dblib (none) n/a dbsetbusy
dblib (none) n/a dbsetdefcharset
dblib (none) n/a dbsetdeflang
dblib (none) n/a dbsetidle
dblib (none) n/a dbsetifile OK
dblib (none) n/a dbsetinterrupt OK
dblib (none) n/a DBSETLCHARSET
dblib (none) n/a DBSETLENCRYPT
dblib (none) n/a dbsetloginfo never
dblib (none) n/a dbsetrow OK
dblib (none) n/a dbsetversion OK
dblib (none) n/a dbspr1row OK
dblib (none) n/a dbspr1rowlen OK
dblib (none) n/a dbsprhead OK
dblib (none) n/a dbsprline OK
dblib (none) n/a dbstrcmp never
dblib (none) n/a dbstrsort never
dblib (none) n/a dbtextsize
dblib (none) n/a dbwritepage never
dblib (none) n/a dbxlate never
dblib bcp bcp_batch (same) OK
dblib bcp bcp_bind (same) OK
dblib bcp bcp_colfmt (same) OK
dblib bcp n/a bcp_colfmt_ps
dblib bcp bcp_collen (same) OK
dblib bcp
- 1
- 2
- 3
- 4
- 5
前往页