[Date Prev][Date Next][Thread Prev][Thread Next]
[Author Index] [Date Index] [Thread Index]
[SQR-USERS Info] [SQRUG Home Page]

SQR does not handle Sybase Text datatype



Am still trying to get SQR to handle Text datatypes.

> 1) - 7) of Ken's example work fine (I shortened the table name though)
> 8) Errors out exactly as in my original note.
>
> It seems that SQR wants to pass $abc as char, even though SQL denotes
> TEXT datatypes.
>
> Arrays don't work inside the INSERT line either.
>
>
>
>
> > ----------
> > From:         Ken Gartman[SMTP:osmium@EROLS.COM]
> > Sent:         Friday, April 03, 1998 6:02 PM
> > To:   Multiple recipients of list SQR-USERS
> > Subject:      Re: Use of Sybase text datatype is recognized as char
> > datatype!
> >
> > Simonian, Guy wrote:
> > >
> > > Am trying to write to a Sybase "text" datatype which is supposed
> to
> > hold
> > > up
> > > to 2 gig of ascii data, yet the errors I get indicate that Sybase
> > thinks
> > > its getting char data;
> > >
> > > begin-setup
> > > begin-sql on-error=SKIP
> > > create table {DETAILDB} (out_line text null)
> > > end-sql
> > > end-setup
> > >
> > > begin-procedure main
> > > let $abc = '1234567...300 characters of data....'
> > > begin-sql
> > >         insert into {DETAILDB} (out_line) values ($abc)
> > > end-sql
> > > end-procedure
> > >
> > > -------When I run this, I get the following bind errors.  It looks
> > like
> > > SQR is passing char data, even though the field is defined as type
> > > text.:
> > >                                --------------------------
> > > (SQR 5528) Sybase dbbind: ct_param error in cursor 119:
> > >    (138) ct_param(): user api layer: external error: A data length
> > of
> > > 300 exceeds the maximum length allowed for CHAR data.
> > > (SQR 5528) Sybase ct_send error in cursor 119:
> > >    (138) ct_param(): user api layer: external error: A data length
> > of
> > > 300 exceeds the maximum length allowed for CHAR data.
> > >
> > > SQL: insert into tempdb..detail (out_line) values (@__p1)
> > >
> > > Error on line 155:
> > >    (SQR 3734) Couldn't compile SQL.
> > >
> > > SQRW: Program Aborting.
> > >
> > > Am running SQR V3.0.18.1 in a Sybase 11 environment.  The SQR
> client
> > is
> > > on SunOS 5.5.1 and also on WinNT.  Sybase is under SunOS 5.5.1
> >
> >
> > Hi, Guy!
> >         Let's use a multi-step approach to debug this one.  Thus we
> > can
> > isolate the problem into a smaller area of confusion.
> >
> > 1.  Create your table outside of SQR.  After you create it, verify
> its
> >         structure.  Are the table name, column name, and column data
> > type correct?
> >
> > 2.  Directly at the data base level, insert a constant into the
> table,
> >         with a SQL statement such as:
> > CREATE TABLE GUY_TEMP_1 (OUT_LINE TEXT)
> >         INSERT INTO GUY_TEMP_1 (OUT_LINE) VALUES
> >
> ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBB
> >
> BBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDD
> >
> DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEE
> >
> EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFF
> >
> FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
> >
> GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
> >
> GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
> >
> HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
> >
> HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJ
> > JJJJJJJJJJJJJJJJ')
> > ;
> >
> > 4.  Do you get the expected results?  COMMIT ;  SELECT * FROM
> > GUY_TEMP_1
> > ;
> >         Do you once again get the expected results?
> >         insert into {DETAILDB} (out_line) values ($abc)
> >
> > 5.  If all is well, code a small, simple SQR:
> >
> >         BEGIN-PROGRAM
> >                 DO INSERTS
> >         END-PROGRAM
> >         BEGIN-PROCEDURE INSERTS
> >         BEGIN-SQL
> >         INSERT INTO GUY_TEMP_1 (OUT_LINE) VALUES
> >
> ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBB
> >
> BBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDD
> >
> DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEE
> >
> EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFF
> >
> FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
> >
> GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
> >
> GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
> >
> HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
> >
> HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJ
> > JJJJJJJJJJJJJJJJ')
> > ;
> >         COMMIT ;
> >         END-SQL
> >         END-PROCEDURE INSERTS
> >
> >
> > 6.  Execute your program with the -E and -S flags:
> >
> >         SQR <connect string>  INSERT-PROGRAM.SQR -E -S
> >
> >   Do you get any errors now?  I doubt that you will, but if so, the
> > file
> >          INSERT-PROGRAM.ERR should have the details.
> >
> > 7.  Code up a program that uses variables:
> >
> >
> >         BEGIN-PROGRAM
> >                 DO INSERTS
> >         END-PROGRAM
> >         BEGIN-PROCEDURE INSERTS
> >                 LET $long-string =
> >
> 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBB
> >
> BBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDD
> >
> DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEE
> >
> EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFF
> >
> FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFG
> >
> GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
> >
> GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
> >
> HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
> >
> HHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJ
> > JJJJJJJJJJJJJJJ'
> >
> >         BEGIN-SQL
> >         INSERT INTO GUY_TEMP_1 (OUT_LINE) VALUES ( $long-string ) ;
> >         COMMIT ;
> >         END-SQL
> >         END-PROCEDURE INSERTS
> >
> > 8.  Execute as before.  Any errors?  I guess this the step most
> likely
> >         to have errors.  Look up any errors in the SQR
> documentation.
> >
> > 9.  At the database level, once again check the results:
> >
> >          SELECT * FROM GUY_TEMP_1 ;
> >
> >
> >
> >                                 Good luck, and happy computing
> >                                 Ken Gartman
> >
>
>