From ikorot01 at gmail.com Sun Jul 1 01:08:02 2018 From: ikorot01 at gmail.com (Igor Korot) Date: Sun, 1 Jul 2018 00:08:02 -0500 Subject: [freetds] Problem with the latest Sybase ODBC driver In-Reply-To: References: Message-ID: Frediano, On Sat, Jun 30, 2018 at 8:08 PM, Igor Korot wrote: > Frediano, > Any idea why freeTDS fails to connect? I was able to connect with tsql by adding to freetds.conf: [code] [MySybase] host = IGORREINCLOUD port = 5000 tds version = 5.0 [/code] and then doing from the command prompt: [code] igor at IgorReinCloud ~/dbhandler $ tsql -S MySybase -U dba -P wasqra locale is "en_US.utf8" locale charset is "UTF-8" using default charset "UTF-8" Msg 4002 (severity 14, state 1) from IGORREINCLOUD: "Login failed. " There was a problem connecting to the server igor at IgorReinCloud ~/dbhandler $ tsql -S MySybase -U sa -P wasqra locale is "en_US.utf8" locale charset is "UTF-8" using default charset "UTF-8" Msg 5704 (severity 10, state 1) from IGORREINCLOUD: "Changed client character set setting to 'iso_1'. " 1> USE draft; 2> go Msg 102 (severity 15, state 181) from IGORREINCLOUD Line 1: "Incorrect syntax near ';'. " 1> USE draft 2> go 1> SELECT * FROM leagues 2> go id name drafttype scoringtype roundvalues leaguetype salary benchplayers 1 Demo - Roto (Auction) 1 1 1 demo 260 0 2 Demo - Roto (Draft) 3 1 1 demo 260 0 3 Demo - Points (Auction) 1 2 1 demo 260 0 4 Demo - Points (Draft) 3 2 1 demo 260 0 (4 rows affected) 1> quit igor at IgorReinCloud ~/dbhandler $ [/code] Do you see any issues with my freeTDS ODBC configuration? Thank you. > > Thank you. > > > On Thu, Jun 28, 2018 at 8:02 AM, John Kendall wrote: >> >>> On Jun 28, 2018, at 5:36 AM, Igor Korot wrote: >>> >>> Hi, John, >>> >>> On Wed, Jun 27, 2018 at 11:14 AM, John Kendall wrote: >>>> Igor, >>>> I'm on Centos 7.5 and it looks like I'm using the exact same version of ASE: >>>> Adaptive Server Enterprise/16.0 SP02 PL02/EBF 25320 SMP/P/x86_64/Enterprise Linux/ase160sp02plx/2492/64-bit/FBO/Sat Nov 21 04:05:39 2015 >>>> >>>> I'm using unixODBC 2.3.1 and the freeTDS odbc driver without issue. >>>> I recall having the Sybase ODBC driver working, but settled on the FreeTDS driver for simplicity. >>> >>> This is my setup: >>> >>> [code] >>> igor at IgorReinCloud ~/dbhandler $ cat /etc/unixODBC/odbcinst.ini >>> [ODBC] >>> Trace=yes >>> TraceFile=/tmp/sql.log >>> Pooling=No >>> >>> [Sybase] >>> Description=Sybase 16 Native Driver >>> Driver=/opt/sap/DataAccess64/ODBC/lib/libsybdrvodb.so >>> UsageCount=1 >>> >>> [Sybase_freeTDS] >>> Description=Sybase FreeTDS Driver >>> Driver=/usr/lib64/libtdsodbc.so >>> UsageCount=1 >>> igor at IgorReinCloud ~/dbhandler $ cat /etc/unixODBC/odbc.ini >>> [ODBC Data Sources] >>> Sybase_16_demo=Sybase 16 ODBC driver >>> Sybase_16_test=Sybase 16 ODBC driver >>> Sybase_16_freeTDS=Sybase_freeTDS >>> >>> [Sybase_16_demo] >>> Description=Sybase 16 ODBC Driver >>> Driver=Sybase >>> Port=5000 >>> Server=IGORREINCLOUD >>> UserID=sa >>> Password= >>> Database=pubs2 >>> Option=3 >>> >>> [Sybase_16_test] >>> Description=Sybase 16 ODBC native driver >>> Driver=Sybase >>> Port=5000 >>> Server=IG >>> Server=IGORREINCLOUD >>> UserID=sa >>> Password= >>> Database=draft >>> Option=3 >>> >>> [Sybase_16_freeTDS] >>> Description=Sybase 16 freeTDS ODBC driver >>> Driver=Sybase_freeTDS >>> Port=5000 >>> Server=IGORREINCLOUD >>> UserID=sa >>> Password= >>> Database=draft >>> TDS Version=5.0 >>> Option=3 >>> [/code] >>> >>> And this is from the ODBC log for freeTDS driver: >>> >>> [code] >>> [ODBC][15829][1530200010.883129][/var/tmp/portage/dev-db/unixODBC-2.3.2-r1/work/unixODBC-2.3.2/DriverManager/SQLConnect.c][3727] >>> Entry: >>> Connection = 0x637050 >>> Server Name = [Sybase_16_freeTDS][length = 17 (SQL_NTS)] >>> User Name = [sa][length = 2 (SQL_NTS)] >>> Authentication = [******][length = 6 (SQL_NTS)] >>> UNICODE Using encoding ASCII 'UTF8' and UNICODE 'UTF16LE' >>> >>> DIAG [01000] [FreeTDS][SQL Server]Adaptive Server connection failed >>> >>> DIAG [S1000] [FreeTDS][SQL Server]Unable to connect to data source >>> >>> [ODBC][15829][1530200010.924065][/var/tmp/portage/dev-db/unixODBC-2.3.2-r1/work/unixODBC-2.3.2/DriverManager/SQLConnect.c][4099] >>> Exit:[SQL_ERROR] >>> [/code] >>> >>> The native driver works OK - I can connect without any issues. >>> >>> Do you see any problems? >>> >>> I'm trying to connect with: >>> >>> isql Sybase_16_freeTDS sa >>> >>> Thank you. >> >> Upon further investigation, my ODBC success is via PHP. I am having problems with unixODBC isql as well. >> So I'm no help. >> >>> >>>> >>>> John >>>> >>>> >>>> On Jun 27, 2018, at 10:37 AM, Igor Korot > wrote: >>>> >>>> Hi, ALL, >>>> This post is not directly related to the freeTDS, but I'm hoping that >>>> someone can help. >>>> >>>> I have a latest Sybase 16.0 version Development Edition installed on Linux. >>>> I also have a unixODBC installed. >>>> >>>> I'm trying to connect to the server using the default Sybase ODBC >>>> driver with the >>>> unixODBC isql program. >>>> >>>> Unfortunately I have a problem. The connection works, but then issuing >>>> the simple >>>> query, like "SELECT * FROM ;", where my table is locatedinside >>>> my local database (the one I created) segfaults. >>>> Trying to do the same with the Sybase demo database works fine. >>>> >>>> I didn't try to do anything with the freeTDS driver yet. I will probably do that >>>> over the weekend. >>>> >>>> Does anybody here have Sybase 16 installed? Did you try ODBC connection >>>> to the server? >>>> >>>> Thank you. >>>> >>>> P.S.: Software versions: >>>> 1> select @@version >>>> 2> go >>>> >>>> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ >>>> Adaptive Server Enterprise/16.0 SP02 PL02/EBF 25320 SMP/P/x86_64/Enterprise Lin >>>> ux/ase160sp02plx/2492/64-bit/FBO/Sat Nov 21 04:05:39 2015 >>>> >>>> (1 row affected) >>>> 1> exit >>>> >>>> [/code] >>>> >>>> [code] >>>> >>>> [ebuild U ] dev-db/unixODBC-2.3.5-r1::gentoo [2.3.2-r1::gentoo] >>>> USE="minimal unicode -odbcmanual -static-libs" ABI_X86="32 (64) >>>> (-x32)" 1,596 KiB >>>> >>>> [/code] >>>> >>>> The current version of unixODBC is 2.3.2-r1 from gentoo repository. >>>> _______________________________________________ >>>> FreeTDS mailing list >>>> FreeTDS at lists.ibiblio.org >>>> https://url.emailprotection.link/?a95lm_Yz0z4VwVi9HMyQSLtTmToR48n_2Es8x43dIoxidNPkdt4wWeUhbwN1QnbrzawQmZ1BjbOu5bK1zLGmRSw~~ >>>> >>>> _______________________________________________ >>>> FreeTDS mailing list >>>> FreeTDS at lists.ibiblio.org >>>> https://url.emailprotection.link/?a95lm_Yz0z4VwVi9HMyQSLtTmToR48n_2Es8x43dIoxidNPkdt4wWeUhbwN1QnbrzawQmZ1BjbOu5bK1zLGmRSw~~ >>> _______________________________________________ >>> FreeTDS mailing list >>> FreeTDS at lists.ibiblio.org >>> https://url.emailprotection.link/?a95lm_Yz0z4VwVi9HMyQSLtTmToR48n_2Es8x43dIoxidNPkdt4wWeUhbwN1QnbrzawQmZ1BjbOu5bK1zLGmRSw~~ >> >> _______________________________________________ >> FreeTDS mailing list >> FreeTDS at lists.ibiblio.org >> https://lists.ibiblio.org/mailman/listinfo/freetds From freddy77 at gmail.com Tue Jul 3 00:54:45 2018 From: freddy77 at gmail.com (Frediano Ziglio) Date: Tue, 3 Jul 2018 05:54:45 +0100 Subject: [freetds] SQLExecDirect() + SQLDataParam() + SQLPutData() fails In-Reply-To: References: <468b6021-9fb9-2738-ae70-1618b035490c@4js.com> Message-ID: 2018-06-29 14:50 GMT+01:00 Sebastien FLAESCH : > Attached, the code example to reproduce: > > When using SQLPrepare() + SQLExecute(): > > $ gcc -D USE_PREP_EXEC -o odbctest3.bin odbctest3.c ... > > $ ./odbctest3.bin >>> prepare insert... >>> bind ... >>> execute... >>> param data... >>>>>> put varchar(max) >>> param data... > > > When using SQLExecDirect(): > > $ gcc -o odbctest3.bin odbctest3.c ... > > $ ./odbctest3.bin >>> bind ... >>> exec direct... >>> param data... >>>>>> put varchar(max) > Error -1 at: SQLPutData 1 > Diagnostic info: > SQL State: HY010 > SQL code : 0 > Message : [FreeTDS][SQL Server]Function sequence error > > > What is wrong in my ODBC function sequence? > > Cheers, > Seb > > I'll have to dig, no idea, the initial SQL_NEED_DATA is detected. Frediano > > On 06/29/2018 03:09 PM, Sebastien FLAESCH wrote: >> >> Hi all, >> >> Just asking before sending a little code sample to reproduce: >> >> Is there a know limitation regarding VARCHAR(MAX)/VARBINARY(MAX) >> parameters >> and SQLExecDirect() + SQLParamData() + SQLPutData() ? >> >> When using SQLPrepare() + SQLExecute() + SQLParamData() + SQLPutData(), I >> can >> send Large Objects, but with SQLExecDirect(), I get the error: >> >> [FreeTDS][SQL Server]Function sequence error >> >> When doing the first SQLPutData() ... >> >> Seb >> _______________________________________________ >> FreeTDS mailing list >> FreeTDS at lists.ibiblio.org >> https://lists.ibiblio.org/mailman/listinfo/freetds >> > > > _______________________________________________ > FreeTDS mailing list > FreeTDS at lists.ibiblio.org > https://lists.ibiblio.org/mailman/listinfo/freetds > From freddy77 at gmail.com Tue Jul 3 01:09:43 2018 From: freddy77 at gmail.com (Frediano Ziglio) Date: Tue, 3 Jul 2018 06:09:43 +0100 Subject: [freetds] Problem with the latest Sybase ODBC driver In-Reply-To: References: Message-ID: 2018-07-01 6:08 GMT+01:00 Igor Korot : > Frediano, > > On Sat, Jun 30, 2018 at 8:08 PM, Igor Korot wrote: >> Frediano, >> Any idea why freeTDS fails to connect? > Too many issues in this thread, I'm a bit confused, from Sybase libraries to crash to ODBC settings, I'll try to reply to this one > I was able to connect with tsql by adding to freetds.conf: > > [code] > [MySybase] > host = IGORREINCLOUD > port = 5000 > tds version = 5.0 > [/code] > > and then doing from the command prompt: > > [code] > igor at IgorReinCloud ~/dbhandler $ tsql -S MySybase -U dba -P wasqra > locale is "en_US.utf8" > locale charset is "UTF-8" > using default charset "UTF-8" > Msg 4002 (severity 14, state 1) from IGORREINCLOUD: > "Login failed. > " This is failing, I suspect you are trying a wrong user/password > There was a problem connecting to the server > igor at IgorReinCloud ~/dbhandler $ tsql -S MySybase -U sa -P wasqra > locale is "en_US.utf8" > locale charset is "UTF-8" > using default charset "UTF-8" > Msg 5704 (severity 10, state 1) from IGORREINCLOUD: > "Changed client character set setting to 'iso_1'. > " This is a successful connection. > 1> USE draft; > 2> go > Msg 102 (severity 15, state 181) from IGORREINCLOUD Line 1: > "Incorrect syntax near ';'. > " > 1> USE draft > 2> go > 1> SELECT * FROM leagues > 2> go > id name drafttype scoringtype roundvalues leaguetype > salary benchplayers > 1 Demo - Roto (Auction) 1 1 1 demo 260 0 > 2 Demo - Roto (Draft) 3 1 1 demo 260 0 > 3 Demo - Points (Auction) 1 2 1 demo 260 0 > 4 Demo - Points (Draft) 3 2 1 demo 260 0 > (4 rows affected) > 1> quit > igor at IgorReinCloud ~/dbhandler $ > [/code] > > Do you see any issues with my freeTDS ODBC configuration? > Looking back at ODBC I would say the option is "TDS_Version", not "TDS Version", see http://www.freetds.org/userguide/odbcconnattr.htm. Usually the steps I take are setting up tsql, then use "Servername" in odbc.ini then more from freetds.conf to odbc.ini the various settings to get an odbc only configuration. At the beginning you were using Sybase drivers, with FreeTDS you can use TDSDUMP and TDSDUMPCONFIG environment to help debugging, see http://www.freetds.org/userguide/logging.htm. > Thank you. > >> >> Thank you. >> >> >> On Thu, Jun 28, 2018 at 8:02 AM, John Kendall wrote: >>> >>>> On Jun 28, 2018, at 5:36 AM, Igor Korot wrote: >>>> >>>> Hi, John, >>>> >>>> On Wed, Jun 27, 2018 at 11:14 AM, John Kendall wrote: >>>>> Igor, >>>>> I'm on Centos 7.5 and it looks like I'm using the exact same version of ASE: >>>>> Adaptive Server Enterprise/16.0 SP02 PL02/EBF 25320 SMP/P/x86_64/Enterprise Linux/ase160sp02plx/2492/64-bit/FBO/Sat Nov 21 04:05:39 2015 >>>>> >>>>> I'm using unixODBC 2.3.1 and the freeTDS odbc driver without issue. >>>>> I recall having the Sybase ODBC driver working, but settled on the FreeTDS driver for simplicity. >>>> >>>> This is my setup: >>>> >>>> [code] >>>> igor at IgorReinCloud ~/dbhandler $ cat /etc/unixODBC/odbcinst.ini >>>> [ODBC] >>>> Trace=yes >>>> TraceFile=/tmp/sql.log >>>> Pooling=No >>>> >>>> [Sybase] >>>> Description=Sybase 16 Native Driver >>>> Driver=/opt/sap/DataAccess64/ODBC/lib/libsybdrvodb.so >>>> UsageCount=1 >>>> >>>> [Sybase_freeTDS] >>>> Description=Sybase FreeTDS Driver >>>> Driver=/usr/lib64/libtdsodbc.so >>>> UsageCount=1 >>>> igor at IgorReinCloud ~/dbhandler $ cat /etc/unixODBC/odbc.ini >>>> [ODBC Data Sources] >>>> Sybase_16_demo=Sybase 16 ODBC driver >>>> Sybase_16_test=Sybase 16 ODBC driver >>>> Sybase_16_freeTDS=Sybase_freeTDS >>>> >>>> [Sybase_16_demo] >>>> Description=Sybase 16 ODBC Driver >>>> Driver=Sybase >>>> Port=5000 >>>> Server=IGORREINCLOUD >>>> UserID=sa >>>> Password= >>>> Database=pubs2 >>>> Option=3 >>>> >>>> [Sybase_16_test] >>>> Description=Sybase 16 ODBC native driver >>>> Driver=Sybase >>>> Port=5000 >>>> Server=IG >>>> Server=IGORREINCLOUD >>>> UserID=sa >>>> Password= >>>> Database=draft >>>> Option=3 >>>> >>>> [Sybase_16_freeTDS] >>>> Description=Sybase 16 freeTDS ODBC driver >>>> Driver=Sybase_freeTDS >>>> Port=5000 >>>> Server=IGORREINCLOUD >>>> UserID=sa >>>> Password= >>>> Database=draft >>>> TDS Version=5.0 >>>> Option=3 >>>> [/code] >>>> >>>> And this is from the ODBC log for freeTDS driver: >>>> >>>> [code] >>>> [ODBC][15829][1530200010.883129][/var/tmp/portage/dev-db/unixODBC-2.3.2-r1/work/unixODBC-2.3.2/DriverManager/SQLConnect.c][3727] >>>> Entry: >>>> Connection = 0x637050 >>>> Server Name = [Sybase_16_freeTDS][length = 17 (SQL_NTS)] >>>> User Name = [sa][length = 2 (SQL_NTS)] >>>> Authentication = [******][length = 6 (SQL_NTS)] >>>> UNICODE Using encoding ASCII 'UTF8' and UNICODE 'UTF16LE' >>>> >>>> DIAG [01000] [FreeTDS][SQL Server]Adaptive Server connection failed >>>> >>>> DIAG [S1000] [FreeTDS][SQL Server]Unable to connect to data source >>>> >>>> [ODBC][15829][1530200010.924065][/var/tmp/portage/dev-db/unixODBC-2.3.2-r1/work/unixODBC-2.3.2/DriverManager/SQLConnect.c][4099] >>>> Exit:[SQL_ERROR] >>>> [/code] >>>> >>>> The native driver works OK - I can connect without any issues. >>>> >>>> Do you see any problems? >>>> >>>> I'm trying to connect with: >>>> >>>> isql Sybase_16_freeTDS sa >>>> >>>> Thank you. >>> >>> Upon further investigation, my ODBC success is via PHP. I am having problems with unixODBC isql as well. >>> So I'm no help. >>> >>>> >>>>> >>>>> John >>>>> >>>>> >>>>> On Jun 27, 2018, at 10:37 AM, Igor Korot > wrote: >>>>> >>>>> Hi, ALL, >>>>> This post is not directly related to the freeTDS, but I'm hoping that >>>>> someone can help. >>>>> >>>>> I have a latest Sybase 16.0 version Development Edition installed on Linux. >>>>> I also have a unixODBC installed. >>>>> >>>>> I'm trying to connect to the server using the default Sybase ODBC >>>>> driver with the >>>>> unixODBC isql program. >>>>> >>>>> Unfortunately I have a problem. The connection works, but then issuing >>>>> the simple >>>>> query, like "SELECT * FROM ;", where my table is locatedinside >>>>> my local database (the one I created) segfaults. >>>>> Trying to do the same with the Sybase demo database works fine. >>>>> >>>>> I didn't try to do anything with the freeTDS driver yet. I will probably do that >>>>> over the weekend. >>>>> >>>>> Does anybody here have Sybase 16 installed? Did you try ODBC connection >>>>> to the server? >>>>> >>>>> Thank you. >>>>> >>>>> P.S.: Software versions: >>>>> 1> select @@version >>>>> 2> go >>>>> >>>>> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ >>>>> Adaptive Server Enterprise/16.0 SP02 PL02/EBF 25320 SMP/P/x86_64/Enterprise Lin >>>>> ux/ase160sp02plx/2492/64-bit/FBO/Sat Nov 21 04:05:39 2015 >>>>> >>>>> (1 row affected) >>>>> 1> exit >>>>> >>>>> [/code] >>>>> >>>>> [code] >>>>> >>>>> [ebuild U ] dev-db/unixODBC-2.3.5-r1::gentoo [2.3.2-r1::gentoo] >>>>> USE="minimal unicode -odbcmanual -static-libs" ABI_X86="32 (64) >>>>> (-x32)" 1,596 KiB >>>>> >>>>> [/code] >>>>> >>>>> The current version of unixODBC is 2.3.2-r1 from gentoo repository. Not much experience with Gentoo, looks like directories are completely different. Frediano From fredy at opag.ch Wed Jul 4 01:37:42 2018 From: fredy at opag.ch (fredy at opag.ch) Date: Wed, 4 Jul 2018 07:37:42 +0200 (GMT+02:00) Subject: [freetds] Problem with the latest Sybase ODBC driver In-Reply-To: CAHt6W4cA8wnq=3ew0RAOChPMDRNLZeMpejZtWz3Vq5Pe96MbMw@mail.gmail.com References: Message-ID: Maybe you should check the encryption setting for Sybase. About one year ago, we were were submitting a patch for this. -- Fredy Paquet OPAG Informatik AG Fabrikmattenweg 11 CH-4144 Arlesheim Tel. 0041 61 7169222 Fax. 0041 61 7169229 http://www.opag.ch Am 3. Juli 2018, 07:09, schrieb Frediano Ziglio: 2018-07-01 6:08 GMT+01:00 Igor Korot : Frediano, On Sat, Jun 30, 2018 at 8:08 PM, Igor Korot wrote: Frediano, Any idea why freeTDS fails to connect? Too many issues in this thread, I'm a bit confused, from Sybase libraries to crash to ODBC settings, I'll try to reply to this one I was able to connect with tsql by adding to freetds.conf: [code] [MySybase] host = IGORREINCLOUD port = 5000 tds version = 5.0 [/code] and then doing from the command prompt: [code] igor at IgorReinCloud ~/dbhandler $ tsql -S MySybase -U dba -P wasqra locale is "en_US.utf8" locale charset is "UTF-8" using default charset "UTF-8" Msg 4002 (severity 14, state 1) from IGORREINCLOUD: "Login failed. " This is failing, I suspect you are trying a wrong user/password There was a problem connecting to the server igor at IgorReinCloud ~/dbhandler $ tsql -S MySybase -U sa -P wasqra locale is "en_US.utf8" locale charset is "UTF-8" using default charset "UTF-8" Msg 5704 (severity 10, state 1) from IGORREINCLOUD: "Changed client character set setting to 'iso_1'. " This is a successful connection. 1> USE draft; 2> go Msg 102 (severity 15, state 181) from IGORREINCLOUD Line 1: "Incorrect syntax near ';'. " 1> USE draft 2> go 1> SELECT * FROM leagues 2> go id??? name??? drafttype??? scoringtype??? roundvalues??? leaguetype salary??? benchplayers 1??? Demo - Roto (Auction)??? 1??? 1??? 1??? demo???? 260??? 0 2??? Demo - Roto (Draft)??? 3??? 1??? 1??? demo???? 260??? 0 3??? Demo - Points (Auction)??? 1??? 2??? 1??? demo???? 260??? 0 4??? Demo - Points (Draft)??? 3??? 2??? 1??? demo???? 260??? 0 (4 rows affected) 1> quit igor at IgorReinCloud ~/dbhandler $ [/code] Do you see any issues with my freeTDS ODBC configuration? Looking back at ODBC I would say the option is "TDS_Version", not "TDS Version", see http://www.freetds.org/userguide/odbcconnattr.htm. Usually the steps I take are setting up tsql, then use "Servername" in odbc.ini then more from freetds.conf to odbc.ini the various settings to get an odbc only configuration. At the beginning you were using Sybase drivers, with FreeTDS you can use TDSDUMP and TDSDUMPCONFIG environment to help debugging, see http://www.freetds.org/userguide/logging.htm. Thank you. Thank you. On Thu, Jun 28, 2018 at 8:02 AM, John Kendall wrote: On Jun 28, 2018, at 5:36 AM, Igor Korot wrote: Hi, John, On Wed, Jun 27, 2018 at 11:14 AM, John Kendall wrote: Igor, I'm on Centos 7.5 and it looks like I'm using the exact same version of ASE: Adaptive Server Enterprise/16.0 SP02 PL02/EBF 25320 SMP/P/x86_64/Enterprise Linux/ase160sp02plx/2492/64-bit/FBO/Sat Nov 21 04:05:39 2015 I'm using unixODBC 2.3.1 and the freeTDS odbc driver without issue. I recall having the Sybase ODBC driver working, but settled on the FreeTDS driver for simplicity. This is my setup: [code] igor at IgorReinCloud ~/dbhandler $ cat /etc/unixODBC/odbcinst.ini [ODBC] Trace=yes TraceFile=/tmp/sql.log Pooling=No [Sybase] Description=Sybase 16 Native Driver Driver=/opt/sap/DataAccess64/ODBC/lib/libsybdrvodb.so UsageCount=1 [Sybase_freeTDS] Description=Sybase FreeTDS Driver Driver=/usr/lib64/libtdsodbc.so UsageCount=1 igor at IgorReinCloud ~/dbhandler $ cat /etc/unixODBC/odbc.ini [ODBC Data Sources] Sybase_16_demo=Sybase 16 ODBC driver Sybase_16_test=Sybase 16 ODBC driver Sybase_16_freeTDS=Sybase_freeTDS [Sybase_16_demo] Description=Sybase 16 ODBC Driver Driver=Sybase Port=5000 Server=IGORREINCLOUD UserID=sa Password= Database=pubs2 Option=3 [Sybase_16_test] Description=Sybase 16 ODBC native driver Driver=Sybase Port=5000 Server=IG Server=IGORREINCLOUD UserID=sa Password= Database=draft Option=3 [Sybase_16_freeTDS] Description=Sybase 16 freeTDS ODBC driver Driver=Sybase_freeTDS Port=5000 Server=IGORREINCLOUD UserID=sa Password= Database=draft TDS Version=5.0 Option=3 [/code] And this is from the ODBC log for freeTDS driver: [code] [ODBC][15829][1530200010.883129][/var/tmp/portage/dev-db/unixODBC-2.3.2-r1/work/unixODBC-2.3.2/DriverManager/SQLConnect.c][3727] Entry: Connection = 0x637050 Server Name = [Sybase_16_freeTDS][length = 17 (SQL_NTS)] User Name = [sa][length = 2 (SQL_NTS)] Authentication = [******][length = 6 (SQL_NTS)] UNICODE Using encoding ASCII 'UTF8' and UNICODE 'UTF16LE' DIAG [01000] [FreeTDS][SQL Server]Adaptive Server connection failed DIAG [S1000] [FreeTDS][SQL Server]Unable to connect to data source [ODBC][15829][1530200010.924065][/var/tmp/portage/dev-db/unixODBC-2.3.2-r1/work/unixODBC-2.3.2/DriverManager/SQLConnect.c][4099] Exit:[SQL_ERROR] [/code] The native driver works OK - I can connect without any issues. Do you see any problems? I'm trying to connect with: isql Sybase_16_freeTDS sa Thank you. Upon further investigation, my ODBC success is via PHP. I? am having problems with unixODBC isql as well. So I'm no help. John On Jun 27, 2018, at 10:37 AM, Igor Korot > wrote: Hi, ALL, This post is not directly related to the freeTDS, but I'm hoping that someone can help. I have a latest Sybase 16.0 version Development Edition installed on Linux. I also have a unixODBC installed. I'm trying to connect to the server using the default Sybase ODBC driver with the unixODBC isql program. Unfortunately I have a problem. The connection works, but then issuing the simple query, like "SELECT * FROM ;", where my table is locatedinside my local database (the one I created) segfaults. Trying to do the same with the Sybase demo database works fine. I didn't try to do anything with the freeTDS driver yet. I will probably do that over the weekend. Does anybody here have Sybase 16 installed? Did you try ODBC connection to the server? Thank you. P.S.: Software versions: 1> select @@version 2> go ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Adaptive Server Enterprise/16.0 SP02 PL02/EBF 25320 SMP/P/x86_64/Enterprise Lin ux/ase160sp02plx/2492/64-bit/FBO/Sat Nov 21 04:05:39 2015 (1 row affected) 1> exit [/code] [code] [ebuild U ] dev-db/unixODBC-2.3.5-r1::gentoo [2.3.2-r1::gentoo] USE="minimal unicode -odbcmanual -static-libs" ABI_X86="32 (64) (-x32)" 1,596 KiB [/code] The current version of unixODBC is 2.3.2-r1 from gentoo repository. Not much experience with Gentoo, looks like directories are completely different. Frediano _______________________________________________ FreeTDS mailing list FreeTDS at lists.ibiblio.org https://lists.ibiblio.org/mailman/listinfo/freetds -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 5084 bytes Desc: S/MIME Cryptographic Signature URL: From ikorot01 at gmail.com Wed Jul 4 13:54:28 2018 From: ikorot01 at gmail.com (Igor Korot) Date: Wed, 4 Jul 2018 12:54:28 -0500 Subject: [freetds] Problem with the latest Sybase ODBC driver In-Reply-To: References: Message-ID: Frediano, On Tue, Jul 3, 2018 at 12:09 AM, Frediano Ziglio wrote: > 2018-07-01 6:08 GMT+01:00 Igor Korot : >> Frediano, >> >> On Sat, Jun 30, 2018 at 8:08 PM, Igor Korot wrote: >>> Frediano, >>> Any idea why freeTDS fails to connect? >> > > Too many issues in this thread, I'm a bit confused, from Sybase > libraries to crash to ODBC settings, I'll try to reply to this one Sorry about that. Let's concentrate on the freeTDS ODBC connection right now. > >> I was able to connect with tsql by adding to freetds.conf: >> >> [code] >> [MySybase] >> host = IGORREINCLOUD >> port = 5000 >> tds version = 5.0 >> [/code] >> >> and then doing from the command prompt: >> >> [code] >> igor at IgorReinCloud ~/dbhandler $ tsql -S MySybase -U dba -P wasqra >> locale is "en_US.utf8" >> locale charset is "UTF-8" >> using default charset "UTF-8" >> Msg 4002 (severity 14, state 1) from IGORREINCLOUD: >> "Login failed. >> " > > This is failing, I suspect you are trying a wrong user/password Yes, there was. Sorry about that. > >> There was a problem connecting to the server >> igor at IgorReinCloud ~/dbhandler $ tsql -S MySybase -U sa -P wasqra >> locale is "en_US.utf8" >> locale charset is "UTF-8" >> using default charset "UTF-8" >> Msg 5704 (severity 10, state 1) from IGORREINCLOUD: >> "Changed client character set setting to 'iso_1'. >> " > > This is a successful connection. > >> 1> USE draft; >> 2> go >> Msg 102 (severity 15, state 181) from IGORREINCLOUD Line 1: >> "Incorrect syntax near ';'. >> " >> 1> USE draft >> 2> go >> 1> SELECT * FROM leagues >> 2> go >> id name drafttype scoringtype roundvalues leaguetype >> salary benchplayers >> 1 Demo - Roto (Auction) 1 1 1 demo 260 0 >> 2 Demo - Roto (Draft) 3 1 1 demo 260 0 >> 3 Demo - Points (Auction) 1 2 1 demo 260 0 >> 4 Demo - Points (Draft) 3 2 1 demo 260 0 >> (4 rows affected) >> 1> quit >> igor at IgorReinCloud ~/dbhandler $ >> [/code] >> >> Do you see any issues with my freeTDS ODBC configuration? Now when I tried to connect with ODBC driver I see following in the sql.log: [code] [ODBC][30927][1530736662.061920][/var/tmp/portage/dev-db/unixODBC-2.3.2-r1/work/unixODBC-2.3.2/DriverManager/SQLConnect.c][3727] Entry: Connection = 0x23d8050 Server Name = [Sybase_16_freeTDS][length = 17 (SQL_NTS)] User Name = [sa][length = 2 (SQL_NTS)] Authentication = [******][length = 6 (SQL_NTS)] UNICODE Using encoding ASCII 'UTF8' and UNICODE 'UTF16LE' DIAG [01000] [FreeTDS][SQL Server]Adaptive Server connection failed DIAG [S1000] [FreeTDS][SQL Server]Unable to connect to data source [/code] This is with the: In the odbcinst.ini: [code] [Sybase_freeTDS] Description=Sybase FreeTDS Driver Driver=/usr/lib64/libtdsodbc.so TDS_Version = 5 UsageCount=3 [/code] In the odbc.ini: [code] [Sybase_16_freeTDS] Description=Sybase 16 freeTDS ODBC driver Driver=Sybase_freeTDS Port=5000 Server=IGORREINCLOUD UserID=sa Password=wasqra Database=draft Option=3 [/code] Anything wrong here with my setup? Thank you. >> > > Looking back at ODBC I would say the option is "TDS_Version", not "TDS > Version", see http://www.freetds.org/userguide/odbcconnattr.htm. Should this option be in odbc.ini rather than in odbcinst.ini? > Usually the steps I take are setting up tsql, then use "Servername" in > odbc.ini then more from freetds.conf to odbc.ini the various settings > to get an odbc only configuration. > > At the beginning you were using Sybase drivers, with FreeTDS you can > use TDSDUMP and TDSDUMPCONFIG environment to help debugging, see > http://www.freetds.org/userguide/logging.htm. Yes, I did. But with the native driver while I did connect the simple query segfaulted on my database (draft). The crash happened somewhere inside the Sybase driver. I did created the thread on the sap community forum website and hopefully someone will look into that. But I was hoping that making freeTDS driver working will help me to at least continue to do my development. Thank you. > >> Thank you. >> >>> >>> Thank you. >>> >>> >>> On Thu, Jun 28, 2018 at 8:02 AM, John Kendall wrote: >>>> >>>>> On Jun 28, 2018, at 5:36 AM, Igor Korot wrote: >>>>> >>>>> Hi, John, >>>>> >>>>> On Wed, Jun 27, 2018 at 11:14 AM, John Kendall wrote: >>>>>> Igor, >>>>>> I'm on Centos 7.5 and it looks like I'm using the exact same version of ASE: >>>>>> Adaptive Server Enterprise/16.0 SP02 PL02/EBF 25320 SMP/P/x86_64/Enterprise Linux/ase160sp02plx/2492/64-bit/FBO/Sat Nov 21 04:05:39 2015 >>>>>> >>>>>> I'm using unixODBC 2.3.1 and the freeTDS odbc driver without issue. >>>>>> I recall having the Sybase ODBC driver working, but settled on the FreeTDS driver for simplicity. >>>>> >>>>> This is my setup: >>>>> >>>>> [code] >>>>> igor at IgorReinCloud ~/dbhandler $ cat /etc/unixODBC/odbcinst.ini >>>>> [ODBC] >>>>> Trace=yes >>>>> TraceFile=/tmp/sql.log >>>>> Pooling=No >>>>> >>>>> [Sybase] >>>>> Description=Sybase 16 Native Driver >>>>> Driver=/opt/sap/DataAccess64/ODBC/lib/libsybdrvodb.so >>>>> UsageCount=1 >>>>> >>>>> [Sybase_freeTDS] >>>>> Description=Sybase FreeTDS Driver >>>>> Driver=/usr/lib64/libtdsodbc.so >>>>> UsageCount=1 >>>>> igor at IgorReinCloud ~/dbhandler $ cat /etc/unixODBC/odbc.ini >>>>> [ODBC Data Sources] >>>>> Sybase_16_demo=Sybase 16 ODBC driver >>>>> Sybase_16_test=Sybase 16 ODBC driver >>>>> Sybase_16_freeTDS=Sybase_freeTDS >>>>> >>>>> [Sybase_16_demo] >>>>> Description=Sybase 16 ODBC Driver >>>>> Driver=Sybase >>>>> Port=5000 >>>>> Server=IGORREINCLOUD >>>>> UserID=sa >>>>> Password= >>>>> Database=pubs2 >>>>> Option=3 >>>>> >>>>> [Sybase_16_test] >>>>> Description=Sybase 16 ODBC native driver >>>>> Driver=Sybase >>>>> Port=5000 >>>>> Server=IG >>>>> Server=IGORREINCLOUD >>>>> UserID=sa >>>>> Password= >>>>> Database=draft >>>>> Option=3 >>>>> >>>>> [Sybase_16_freeTDS] >>>>> Description=Sybase 16 freeTDS ODBC driver >>>>> Driver=Sybase_freeTDS >>>>> Port=5000 >>>>> Server=IGORREINCLOUD >>>>> UserID=sa >>>>> Password= >>>>> Database=draft >>>>> TDS Version=5.0 >>>>> Option=3 >>>>> [/code] >>>>> >>>>> And this is from the ODBC log for freeTDS driver: >>>>> >>>>> [code] >>>>> [ODBC][15829][1530200010.883129][/var/tmp/portage/dev-db/unixODBC-2.3.2-r1/work/unixODBC-2.3.2/DriverManager/SQLConnect.c][3727] >>>>> Entry: >>>>> Connection = 0x637050 >>>>> Server Name = [Sybase_16_freeTDS][length = 17 (SQL_NTS)] >>>>> User Name = [sa][length = 2 (SQL_NTS)] >>>>> Authentication = [******][length = 6 (SQL_NTS)] >>>>> UNICODE Using encoding ASCII 'UTF8' and UNICODE 'UTF16LE' >>>>> >>>>> DIAG [01000] [FreeTDS][SQL Server]Adaptive Server connection failed >>>>> >>>>> DIAG [S1000] [FreeTDS][SQL Server]Unable to connect to data source >>>>> >>>>> [ODBC][15829][1530200010.924065][/var/tmp/portage/dev-db/unixODBC-2.3.2-r1/work/unixODBC-2.3.2/DriverManager/SQLConnect.c][4099] >>>>> Exit:[SQL_ERROR] >>>>> [/code] >>>>> >>>>> The native driver works OK - I can connect without any issues. >>>>> >>>>> Do you see any problems? >>>>> >>>>> I'm trying to connect with: >>>>> >>>>> isql Sybase_16_freeTDS sa >>>>> >>>>> Thank you. >>>> >>>> Upon further investigation, my ODBC success is via PHP. I am having problems with unixODBC isql as well. >>>> So I'm no help. >>>> >>>>> >>>>>> >>>>>> John >>>>>> >>>>>> >>>>>> On Jun 27, 2018, at 10:37 AM, Igor Korot > wrote: >>>>>> >>>>>> Hi, ALL, >>>>>> This post is not directly related to the freeTDS, but I'm hoping that >>>>>> someone can help. >>>>>> >>>>>> I have a latest Sybase 16.0 version Development Edition installed on Linux. >>>>>> I also have a unixODBC installed. >>>>>> >>>>>> I'm trying to connect to the server using the default Sybase ODBC >>>>>> driver with the >>>>>> unixODBC isql program. >>>>>> >>>>>> Unfortunately I have a problem. The connection works, but then issuing >>>>>> the simple >>>>>> query, like "SELECT * FROM ;", where my table is locatedinside >>>>>> my local database (the one I created) segfaults. >>>>>> Trying to do the same with the Sybase demo database works fine. >>>>>> >>>>>> I didn't try to do anything with the freeTDS driver yet. I will probably do that >>>>>> over the weekend. >>>>>> >>>>>> Does anybody here have Sybase 16 installed? Did you try ODBC connection >>>>>> to the server? >>>>>> >>>>>> Thank you. >>>>>> >>>>>> P.S.: Software versions: >>>>>> 1> select @@version >>>>>> 2> go >>>>>> >>>>>> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ >>>>>> Adaptive Server Enterprise/16.0 SP02 PL02/EBF 25320 SMP/P/x86_64/Enterprise Lin >>>>>> ux/ase160sp02plx/2492/64-bit/FBO/Sat Nov 21 04:05:39 2015 >>>>>> >>>>>> (1 row affected) >>>>>> 1> exit >>>>>> >>>>>> [/code] >>>>>> >>>>>> [code] >>>>>> >>>>>> [ebuild U ] dev-db/unixODBC-2.3.5-r1::gentoo [2.3.2-r1::gentoo] >>>>>> USE="minimal unicode -odbcmanual -static-libs" ABI_X86="32 (64) >>>>>> (-x32)" 1,596 KiB >>>>>> >>>>>> [/code] >>>>>> >>>>>> The current version of unixODBC is 2.3.2-r1 from gentoo repository. > > Not much experience with Gentoo, looks like directories are completely > different. > > Frediano > _______________________________________________ > FreeTDS mailing list > FreeTDS at lists.ibiblio.org > https://lists.ibiblio.org/mailman/listinfo/freetds From ikorot01 at gmail.com Wed Jul 4 14:14:06 2018 From: ikorot01 at gmail.com (Igor Korot) Date: Wed, 4 Jul 2018 13:14:06 -0500 Subject: [freetds] Problem with the latest Sybase ODBC driver In-Reply-To: References: Message-ID: Frediano, On Wed, Jul 4, 2018 at 12:54 PM, Igor Korot wrote: > Frediano, > > On Tue, Jul 3, 2018 at 12:09 AM, Frediano Ziglio wrote: >> 2018-07-01 6:08 GMT+01:00 Igor Korot : >>> Frediano, >>> >>> On Sat, Jun 30, 2018 at 8:08 PM, Igor Korot wrote: >>>> Frediano, >>>> Any idea why freeTDS fails to connect? >>> >> >> Too many issues in this thread, I'm a bit confused, from Sybase >> libraries to crash to ODBC settings, I'll try to reply to this one > > Sorry about that. > Let's concentrate on the freeTDS ODBC connection right now. > >> >>> I was able to connect with tsql by adding to freetds.conf: >>> >>> [code] >>> [MySybase] >>> host = IGORREINCLOUD >>> port = 5000 >>> tds version = 5.0 >>> [/code] >>> >>> and then doing from the command prompt: >>> >>> [code] >>> igor at IgorReinCloud ~/dbhandler $ tsql -S MySybase -U dba -P wasqra >>> locale is "en_US.utf8" >>> locale charset is "UTF-8" >>> using default charset "UTF-8" >>> Msg 4002 (severity 14, state 1) from IGORREINCLOUD: >>> "Login failed. >>> " >> >> This is failing, I suspect you are trying a wrong user/password > > Yes, there was. Sorry about that. > >> >>> There was a problem connecting to the server >>> igor at IgorReinCloud ~/dbhandler $ tsql -S MySybase -U sa -P wasqra >>> locale is "en_US.utf8" >>> locale charset is "UTF-8" >>> using default charset "UTF-8" >>> Msg 5704 (severity 10, state 1) from IGORREINCLOUD: >>> "Changed client character set setting to 'iso_1'. >>> " >> >> This is a successful connection. >> >>> 1> USE draft; >>> 2> go >>> Msg 102 (severity 15, state 181) from IGORREINCLOUD Line 1: >>> "Incorrect syntax near ';'. >>> " >>> 1> USE draft >>> 2> go >>> 1> SELECT * FROM leagues >>> 2> go >>> id name drafttype scoringtype roundvalues leaguetype >>> salary benchplayers >>> 1 Demo - Roto (Auction) 1 1 1 demo 260 0 >>> 2 Demo - Roto (Draft) 3 1 1 demo 260 0 >>> 3 Demo - Points (Auction) 1 2 1 demo 260 0 >>> 4 Demo - Points (Draft) 3 2 1 demo 260 0 >>> (4 rows affected) >>> 1> quit >>> igor at IgorReinCloud ~/dbhandler $ >>> [/code] >>> >>> Do you see any issues with my freeTDS ODBC configuration? > > Now when I tried to connect with ODBC driver I see following in the sql.log: > > [code] > [ODBC][30927][1530736662.061920][/var/tmp/portage/dev-db/unixODBC-2.3.2-r1/work/unixODBC-2.3.2/DriverManager/SQLConnect.c][3727] > Entry: > Connection = 0x23d8050 > Server Name = [Sybase_16_freeTDS][length = 17 (SQL_NTS)] > User Name = [sa][length = 2 (SQL_NTS)] > Authentication = [******][length = 6 (SQL_NTS)] > UNICODE Using encoding ASCII 'UTF8' and UNICODE 'UTF16LE' > > DIAG [01000] [FreeTDS][SQL Server]Adaptive Server connection failed > > DIAG [S1000] [FreeTDS][SQL Server]Unable to connect to data source > > [/code] > > This is with the: > > In the odbcinst.ini: > [code] > [Sybase_freeTDS] > Description=Sybase FreeTDS Driver > Driver=/usr/lib64/libtdsodbc.so > TDS_Version = 5 > UsageCount=3 > [/code] > > In the odbc.ini: > [code] > [Sybase_16_freeTDS] > Description=Sybase 16 freeTDS ODBC driver > Driver=Sybase_freeTDS > Port=5000 > Server=IGORREINCLOUD > UserID=sa > Password=wasqra > Database=draft > Option=3 > [/code] > > Anything wrong here with my setup? > > Thank you. >>> >> >> Looking back at ODBC I would say the option is "TDS_Version", not "TDS >> Version", see http://www.freetds.org/userguide/odbcconnattr.htm. > > Should this option be in odbc.ini rather than in odbcinst.ini? > >> Usually the steps I take are setting up tsql, then use "Servername" in >> odbc.ini then more from freetds.conf to odbc.ini the various settings >> to get an odbc only configuration. >> >> At the beginning you were using Sybase drivers, with FreeTDS you can >> use TDSDUMP and TDSDUMPCONFIG environment to help debugging, see >> http://www.freetds.org/userguide/logging.htm. > > Yes, I did. > But with the native driver while I did connect the simple query segfaulted on my > database (draft). The crash happened somewhere inside the Sybase driver. > I did created the thread on the sap community forum website and hopefully > someone will look into that. > But I was hoping that making freeTDS driver working will help me to at least > continue to do my development. OK, I was a little too fast. After putting the line "TDS_Version=5.0" into odbc.ini I was able to connect!!! Thank you. The issue with freeTDS ODBC is solved. > > Thank you. > >> >>> Thank you. >>> >>>> >>>> Thank you. >>>> >>>> >>>> On Thu, Jun 28, 2018 at 8:02 AM, John Kendall wrote: >>>>> >>>>>> On Jun 28, 2018, at 5:36 AM, Igor Korot wrote: >>>>>> >>>>>> Hi, John, >>>>>> >>>>>> On Wed, Jun 27, 2018 at 11:14 AM, John Kendall wrote: >>>>>>> Igor, >>>>>>> I'm on Centos 7.5 and it looks like I'm using the exact same version of ASE: >>>>>>> Adaptive Server Enterprise/16.0 SP02 PL02/EBF 25320 SMP/P/x86_64/Enterprise Linux/ase160sp02plx/2492/64-bit/FBO/Sat Nov 21 04:05:39 2015 >>>>>>> >>>>>>> I'm using unixODBC 2.3.1 and the freeTDS odbc driver without issue. >>>>>>> I recall having the Sybase ODBC driver working, but settled on the FreeTDS driver for simplicity. >>>>>> >>>>>> This is my setup: >>>>>> >>>>>> [code] >>>>>> igor at IgorReinCloud ~/dbhandler $ cat /etc/unixODBC/odbcinst.ini >>>>>> [ODBC] >>>>>> Trace=yes >>>>>> TraceFile=/tmp/sql.log >>>>>> Pooling=No >>>>>> >>>>>> [Sybase] >>>>>> Description=Sybase 16 Native Driver >>>>>> Driver=/opt/sap/DataAccess64/ODBC/lib/libsybdrvodb.so >>>>>> UsageCount=1 >>>>>> >>>>>> [Sybase_freeTDS] >>>>>> Description=Sybase FreeTDS Driver >>>>>> Driver=/usr/lib64/libtdsodbc.so >>>>>> UsageCount=1 >>>>>> igor at IgorReinCloud ~/dbhandler $ cat /etc/unixODBC/odbc.ini >>>>>> [ODBC Data Sources] >>>>>> Sybase_16_demo=Sybase 16 ODBC driver >>>>>> Sybase_16_test=Sybase 16 ODBC driver >>>>>> Sybase_16_freeTDS=Sybase_freeTDS >>>>>> >>>>>> [Sybase_16_demo] >>>>>> Description=Sybase 16 ODBC Driver >>>>>> Driver=Sybase >>>>>> Port=5000 >>>>>> Server=IGORREINCLOUD >>>>>> UserID=sa >>>>>> Password= >>>>>> Database=pubs2 >>>>>> Option=3 >>>>>> >>>>>> [Sybase_16_test] >>>>>> Description=Sybase 16 ODBC native driver >>>>>> Driver=Sybase >>>>>> Port=5000 >>>>>> Server=IG >>>>>> Server=IGORREINCLOUD >>>>>> UserID=sa >>>>>> Password= >>>>>> Database=draft >>>>>> Option=3 >>>>>> >>>>>> [Sybase_16_freeTDS] >>>>>> Description=Sybase 16 freeTDS ODBC driver >>>>>> Driver=Sybase_freeTDS >>>>>> Port=5000 >>>>>> Server=IGORREINCLOUD >>>>>> UserID=sa >>>>>> Password= >>>>>> Database=draft >>>>>> TDS Version=5.0 >>>>>> Option=3 >>>>>> [/code] >>>>>> >>>>>> And this is from the ODBC log for freeTDS driver: >>>>>> >>>>>> [code] >>>>>> [ODBC][15829][1530200010.883129][/var/tmp/portage/dev-db/unixODBC-2.3.2-r1/work/unixODBC-2.3.2/DriverManager/SQLConnect.c][3727] >>>>>> Entry: >>>>>> Connection = 0x637050 >>>>>> Server Name = [Sybase_16_freeTDS][length = 17 (SQL_NTS)] >>>>>> User Name = [sa][length = 2 (SQL_NTS)] >>>>>> Authentication = [******][length = 6 (SQL_NTS)] >>>>>> UNICODE Using encoding ASCII 'UTF8' and UNICODE 'UTF16LE' >>>>>> >>>>>> DIAG [01000] [FreeTDS][SQL Server]Adaptive Server connection failed >>>>>> >>>>>> DIAG [S1000] [FreeTDS][SQL Server]Unable to connect to data source >>>>>> >>>>>> [ODBC][15829][1530200010.924065][/var/tmp/portage/dev-db/unixODBC-2.3.2-r1/work/unixODBC-2.3.2/DriverManager/SQLConnect.c][4099] >>>>>> Exit:[SQL_ERROR] >>>>>> [/code] >>>>>> >>>>>> The native driver works OK - I can connect without any issues. >>>>>> >>>>>> Do you see any problems? >>>>>> >>>>>> I'm trying to connect with: >>>>>> >>>>>> isql Sybase_16_freeTDS sa >>>>>> >>>>>> Thank you. >>>>> >>>>> Upon further investigation, my ODBC success is via PHP. I am having problems with unixODBC isql as well. >>>>> So I'm no help. >>>>> >>>>>> >>>>>>> >>>>>>> John >>>>>>> >>>>>>> >>>>>>> On Jun 27, 2018, at 10:37 AM, Igor Korot > wrote: >>>>>>> >>>>>>> Hi, ALL, >>>>>>> This post is not directly related to the freeTDS, but I'm hoping that >>>>>>> someone can help. >>>>>>> >>>>>>> I have a latest Sybase 16.0 version Development Edition installed on Linux. >>>>>>> I also have a unixODBC installed. >>>>>>> >>>>>>> I'm trying to connect to the server using the default Sybase ODBC >>>>>>> driver with the >>>>>>> unixODBC isql program. >>>>>>> >>>>>>> Unfortunately I have a problem. The connection works, but then issuing >>>>>>> the simple >>>>>>> query, like "SELECT * FROM ;", where my table is locatedinside >>>>>>> my local database (the one I created) segfaults. >>>>>>> Trying to do the same with the Sybase demo database works fine. >>>>>>> >>>>>>> I didn't try to do anything with the freeTDS driver yet. I will probably do that >>>>>>> over the weekend. >>>>>>> >>>>>>> Does anybody here have Sybase 16 installed? Did you try ODBC connection >>>>>>> to the server? >>>>>>> >>>>>>> Thank you. >>>>>>> >>>>>>> P.S.: Software versions: >>>>>>> 1> select @@version >>>>>>> 2> go >>>>>>> >>>>>>> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ >>>>>>> Adaptive Server Enterprise/16.0 SP02 PL02/EBF 25320 SMP/P/x86_64/Enterprise Lin >>>>>>> ux/ase160sp02plx/2492/64-bit/FBO/Sat Nov 21 04:05:39 2015 >>>>>>> >>>>>>> (1 row affected) >>>>>>> 1> exit >>>>>>> >>>>>>> [/code] >>>>>>> >>>>>>> [code] >>>>>>> >>>>>>> [ebuild U ] dev-db/unixODBC-2.3.5-r1::gentoo [2.3.2-r1::gentoo] >>>>>>> USE="minimal unicode -odbcmanual -static-libs" ABI_X86="32 (64) >>>>>>> (-x32)" 1,596 KiB >>>>>>> >>>>>>> [/code] >>>>>>> >>>>>>> The current version of unixODBC is 2.3.2-r1 from gentoo repository. >> >> Not much experience with Gentoo, looks like directories are completely >> different. >> >> Frediano >> _______________________________________________ >> FreeTDS mailing list >> FreeTDS at lists.ibiblio.org >> https://lists.ibiblio.org/mailman/listinfo/freetds From ikorot01 at gmail.com Fri Jul 6 23:16:15 2018 From: ikorot01 at gmail.com (Igor Korot) Date: Fri, 6 Jul 2018 22:16:15 -0500 Subject: [freetds] Problem with the latest Sybase ODBC driver In-Reply-To: References: Message-ID: Frediano, On Tue, Jul 3, 2018 at 12:09 AM, Frediano Ziglio wrote: > 2018-07-01 6:08 GMT+01:00 Igor Korot : >> Frediano, >> >> On Sat, Jun 30, 2018 at 8:08 PM, Igor Korot wrote: >>> Frediano, >>> Any idea why freeTDS fails to connect? >> > > Too many issues in this thread, I'm a bit confused, from Sybase > libraries to crash to ODBC settings, I'll try to reply to this one > >> I was able to connect with tsql by adding to freetds.conf: >> >> [code] >> [MySybase] >> host = IGORREINCLOUD >> port = 5000 >> tds version = 5.0 >> [/code] >> >> and then doing from the command prompt: >> >> [code] >> igor at IgorReinCloud ~/dbhandler $ tsql -S MySybase -U dba -P wasqra >> locale is "en_US.utf8" >> locale charset is "UTF-8" >> using default charset "UTF-8" >> Msg 4002 (severity 14, state 1) from IGORREINCLOUD: >> "Login failed. >> " > > This is failing, I suspect you are trying a wrong user/password > >> There was a problem connecting to the server >> igor at IgorReinCloud ~/dbhandler $ tsql -S MySybase -U sa -P wasqra >> locale is "en_US.utf8" >> locale charset is "UTF-8" >> using default charset "UTF-8" >> Msg 5704 (severity 10, state 1) from IGORREINCLOUD: >> "Changed client character set setting to 'iso_1'. >> " > > This is a successful connection. > >> 1> USE draft; >> 2> go >> Msg 102 (severity 15, state 181) from IGORREINCLOUD Line 1: >> "Incorrect syntax near ';'. >> " >> 1> USE draft >> 2> go >> 1> SELECT * FROM leagues >> 2> go >> id name drafttype scoringtype roundvalues leaguetype >> salary benchplayers >> 1 Demo - Roto (Auction) 1 1 1 demo 260 0 >> 2 Demo - Roto (Draft) 3 1 1 demo 260 0 >> 3 Demo - Points (Auction) 1 2 1 demo 260 0 >> 4 Demo - Points (Draft) 3 2 1 demo 260 0 >> (4 rows affected) >> 1> quit >> igor at IgorReinCloud ~/dbhandler $ >> [/code] >> >> Do you see any issues with my freeTDS ODBC configuration? >> > > Looking back at ODBC I would say the option is "TDS_Version", not "TDS > Version", see http://www.freetds.org/userguide/odbcconnattr.htm. > Usually the steps I take are setting up tsql, then use "Servername" in > odbc.ini then more from freetds.conf to odbc.ini the various settings > to get an odbc only configuration. > > At the beginning you were using Sybase drivers, with FreeTDS you can > use TDSDUMP and TDSDUMPCONFIG environment to help debugging, see > http://www.freetds.org/userguide/logging.htm. So the unixODBC isql connection worked. Now I tried to connect from my program. It failed. Here are the lines from the sql.log files: [code] [ODBC][27195][1530943457.280532][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLDriverConnectW.c][290] Entry: Connection = 0x292cc00 Window Hdl = 0x28c62a0 Str In = [DSN=Sybase_16_freeTDS;Driver=Sybase_freeTDS][length = 43 (SQL_NTS)] Str Out = 0x2a87400 Str Out Max = 1024 Str Out Ptr = 0x7ffcb68b6550 Completion = 1 UNICODE Using encoding ASCII 'UTF8' and UNICODE 'UTF16LE' [ODBC][27195][1530943457.327913][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLDriverConnectW.c][699] Exit:[SQL_ERROR] [ODBC][27195][1530943457.328028][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLGetDiagRecW.c][516] Entry: Connection = 0x292cc00 Rec Number = 1 SQLState = 0x7ffcb68b60d0 Native = 0x7ffcb68b60a4 Message Text = 0x7ffcb68b6100 Buffer Length = 1024 Text Len Ptr = 0x7ffcb68b609c [ODBC][27195][1530943457.328082][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLGetDiagRecW.c][563] Exit:[SQL_SUCCESS] SQLState = [HYC00] Native = 0x7ffcb68b60a4 -> 0 Message Text = [[FreeTDS][SQL Server]Driver not capable] [ODBC][27195][1530943457.328149][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLGetDiagRecW.c][516] Entry: Connection = 0x292cc00 Rec Number = 2 SQLState = 0x7ffcb68b60d0 Native = 0x7ffcb68b60a4 Message Text = 0x7ffcb68b6100 Buffer Length = 1024 Text Len Ptr = 0x7ffcb68b609c [ODBC][27195][1530943457.328198][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLGetDiagRecW.c][563] Exit:[SQL_SUCCESS] SQLState = [08001] Native = 0x7ffcb68b60a4 -> 0 Message Text = [[FreeTDS][SQL Server]Unable to connect to data source] [ODBC][27195][1530943457.328247][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLGetDiagRecW.c][516] Entry: Connection = 0x292cc00 Rec Number = 3 SQLState = 0x7ffcb68b60d0 Native = 0x7ffcb68b60a4 Message Text = 0x7ffcb68b6100 Buffer Length = 1024 Text Len Ptr = 0x7ffcb68b609c [ODBC][27195][1530943457.328283][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLGetDiagRecW.c][563] Exit:[SQL_NO_DATA] [ODBC][27195][1530943462.470074][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLFreeHandle.c][290] Entry: Handle Type = 2 Input Handle = 0x292cc00 [ODBC][27195][1530943462.470352][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLFreeHandle.c][339] Exit:[SQL_SUCCESS] [ODBC][27195][1530943462.470433][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLFreeHandle.c][220] Entry: Handle Type = 1 Input Handle = 0x29b6d20 [/code] I presume the "Driver not capable" error comes from the "Completion" parameter? Or there is something else? Please advise. Thank you. > >> Thank you. >> >>> >>> Thank you. >>> >>> >>> On Thu, Jun 28, 2018 at 8:02 AM, John Kendall wrote: >>>> >>>>> On Jun 28, 2018, at 5:36 AM, Igor Korot wrote: >>>>> >>>>> Hi, John, >>>>> >>>>> On Wed, Jun 27, 2018 at 11:14 AM, John Kendall wrote: >>>>>> Igor, >>>>>> I'm on Centos 7.5 and it looks like I'm using the exact same version of ASE: >>>>>> Adaptive Server Enterprise/16.0 SP02 PL02/EBF 25320 SMP/P/x86_64/Enterprise Linux/ase160sp02plx/2492/64-bit/FBO/Sat Nov 21 04:05:39 2015 >>>>>> >>>>>> I'm using unixODBC 2.3.1 and the freeTDS odbc driver without issue. >>>>>> I recall having the Sybase ODBC driver working, but settled on the FreeTDS driver for simplicity. >>>>> >>>>> This is my setup: >>>>> >>>>> [code] >>>>> igor at IgorReinCloud ~/dbhandler $ cat /etc/unixODBC/odbcinst.ini >>>>> [ODBC] >>>>> Trace=yes >>>>> TraceFile=/tmp/sql.log >>>>> Pooling=No >>>>> >>>>> [Sybase] >>>>> Description=Sybase 16 Native Driver >>>>> Driver=/opt/sap/DataAccess64/ODBC/lib/libsybdrvodb.so >>>>> UsageCount=1 >>>>> >>>>> [Sybase_freeTDS] >>>>> Description=Sybase FreeTDS Driver >>>>> Driver=/usr/lib64/libtdsodbc.so >>>>> UsageCount=1 >>>>> igor at IgorReinCloud ~/dbhandler $ cat /etc/unixODBC/odbc.ini >>>>> [ODBC Data Sources] >>>>> Sybase_16_demo=Sybase 16 ODBC driver >>>>> Sybase_16_test=Sybase 16 ODBC driver >>>>> Sybase_16_freeTDS=Sybase_freeTDS >>>>> >>>>> [Sybase_16_demo] >>>>> Description=Sybase 16 ODBC Driver >>>>> Driver=Sybase >>>>> Port=5000 >>>>> Server=IGORREINCLOUD >>>>> UserID=sa >>>>> Password= >>>>> Database=pubs2 >>>>> Option=3 >>>>> >>>>> [Sybase_16_test] >>>>> Description=Sybase 16 ODBC native driver >>>>> Driver=Sybase >>>>> Port=5000 >>>>> Server=IG >>>>> Server=IGORREINCLOUD >>>>> UserID=sa >>>>> Password= >>>>> Database=draft >>>>> Option=3 >>>>> >>>>> [Sybase_16_freeTDS] >>>>> Description=Sybase 16 freeTDS ODBC driver >>>>> Driver=Sybase_freeTDS >>>>> Port=5000 >>>>> Server=IGORREINCLOUD >>>>> UserID=sa >>>>> Password= >>>>> Database=draft >>>>> TDS Version=5.0 >>>>> Option=3 >>>>> [/code] >>>>> >>>>> And this is from the ODBC log for freeTDS driver: >>>>> >>>>> [code] >>>>> [ODBC][15829][1530200010.883129][/var/tmp/portage/dev-db/unixODBC-2.3.2-r1/work/unixODBC-2.3.2/DriverManager/SQLConnect.c][3727] >>>>> Entry: >>>>> Connection = 0x637050 >>>>> Server Name = [Sybase_16_freeTDS][length = 17 (SQL_NTS)] >>>>> User Name = [sa][length = 2 (SQL_NTS)] >>>>> Authentication = [******][length = 6 (SQL_NTS)] >>>>> UNICODE Using encoding ASCII 'UTF8' and UNICODE 'UTF16LE' >>>>> >>>>> DIAG [01000] [FreeTDS][SQL Server]Adaptive Server connection failed >>>>> >>>>> DIAG [S1000] [FreeTDS][SQL Server]Unable to connect to data source >>>>> >>>>> [ODBC][15829][1530200010.924065][/var/tmp/portage/dev-db/unixODBC-2.3.2-r1/work/unixODBC-2.3.2/DriverManager/SQLConnect.c][4099] >>>>> Exit:[SQL_ERROR] >>>>> [/code] >>>>> >>>>> The native driver works OK - I can connect without any issues. >>>>> >>>>> Do you see any problems? >>>>> >>>>> I'm trying to connect with: >>>>> >>>>> isql Sybase_16_freeTDS sa >>>>> >>>>> Thank you. >>>> >>>> Upon further investigation, my ODBC success is via PHP. I am having problems with unixODBC isql as well. >>>> So I'm no help. >>>> >>>>> >>>>>> >>>>>> John >>>>>> >>>>>> >>>>>> On Jun 27, 2018, at 10:37 AM, Igor Korot > wrote: >>>>>> >>>>>> Hi, ALL, >>>>>> This post is not directly related to the freeTDS, but I'm hoping that >>>>>> someone can help. >>>>>> >>>>>> I have a latest Sybase 16.0 version Development Edition installed on Linux. >>>>>> I also have a unixODBC installed. >>>>>> >>>>>> I'm trying to connect to the server using the default Sybase ODBC >>>>>> driver with the >>>>>> unixODBC isql program. >>>>>> >>>>>> Unfortunately I have a problem. The connection works, but then issuing >>>>>> the simple >>>>>> query, like "SELECT * FROM ;", where my table is locatedinside >>>>>> my local database (the one I created) segfaults. >>>>>> Trying to do the same with the Sybase demo database works fine. >>>>>> >>>>>> I didn't try to do anything with the freeTDS driver yet. I will probably do that >>>>>> over the weekend. >>>>>> >>>>>> Does anybody here have Sybase 16 installed? Did you try ODBC connection >>>>>> to the server? >>>>>> >>>>>> Thank you. >>>>>> >>>>>> P.S.: Software versions: >>>>>> 1> select @@version >>>>>> 2> go >>>>>> >>>>>> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ >>>>>> Adaptive Server Enterprise/16.0 SP02 PL02/EBF 25320 SMP/P/x86_64/Enterprise Lin >>>>>> ux/ase160sp02plx/2492/64-bit/FBO/Sat Nov 21 04:05:39 2015 >>>>>> >>>>>> (1 row affected) >>>>>> 1> exit >>>>>> >>>>>> [/code] >>>>>> >>>>>> [code] >>>>>> >>>>>> [ebuild U ] dev-db/unixODBC-2.3.5-r1::gentoo [2.3.2-r1::gentoo] >>>>>> USE="minimal unicode -odbcmanual -static-libs" ABI_X86="32 (64) >>>>>> (-x32)" 1,596 KiB >>>>>> >>>>>> [/code] >>>>>> >>>>>> The current version of unixODBC is 2.3.2-r1 from gentoo repository. > > Not much experience with Gentoo, looks like directories are completely > different. > > Frediano > _______________________________________________ > FreeTDS mailing list > FreeTDS at lists.ibiblio.org > https://lists.ibiblio.org/mailman/listinfo/freetds From ikorot01 at gmail.com Sat Jul 7 13:48:29 2018 From: ikorot01 at gmail.com (Igor Korot) Date: Sat, 7 Jul 2018 12:48:29 -0500 Subject: [freetds] Problem with the latest Sybase ODBC driver In-Reply-To: References: Message-ID: Frediano, So I did check the sources and it looks like under non-Windows platforms the driver doesn't support asking for the login information. So I changed my code a bit passing SQL_DRIVER_NOPROMPT to SQLDriverConnect. However, I still can't connect. So I turned on the logging on freeTDS. Attached please find 2 freeTDS log files: - one is from the isql unixODBC session which is successful - other is from my software which uses SQLDriverConnect which fails. Both are produced with TDSDUMP environment variable. By looking at those logs it looks like I have to retrieve the userid/password pair and supply it to the connection string. But I thought that this is the job of the driver. Was I wrong? If you need any more information let me know. I am trying to connect to Sybase 16 server using freeTDS 1.00.14 and unixODBC 2.3.5. Thank you. On Fri, Jul 6, 2018 at 10:16 PM, Igor Korot wrote: > Frediano, > > On Tue, Jul 3, 2018 at 12:09 AM, Frediano Ziglio wrote: >> 2018-07-01 6:08 GMT+01:00 Igor Korot : >>> Frediano, >>> >>> On Sat, Jun 30, 2018 at 8:08 PM, Igor Korot wrote: >>>> Frediano, >>>> Any idea why freeTDS fails to connect? >>> >> >> Too many issues in this thread, I'm a bit confused, from Sybase >> libraries to crash to ODBC settings, I'll try to reply to this one >> >>> I was able to connect with tsql by adding to freetds.conf: >>> >>> [code] >>> [MySybase] >>> host = IGORREINCLOUD >>> port = 5000 >>> tds version = 5.0 >>> [/code] >>> >>> and then doing from the command prompt: >>> >>> [code] >>> igor at IgorReinCloud ~/dbhandler $ tsql -S MySybase -U dba -P wasqra >>> locale is "en_US.utf8" >>> locale charset is "UTF-8" >>> using default charset "UTF-8" >>> Msg 4002 (severity 14, state 1) from IGORREINCLOUD: >>> "Login failed. >>> " >> >> This is failing, I suspect you are trying a wrong user/password >> >>> There was a problem connecting to the server >>> igor at IgorReinCloud ~/dbhandler $ tsql -S MySybase -U sa -P wasqra >>> locale is "en_US.utf8" >>> locale charset is "UTF-8" >>> using default charset "UTF-8" >>> Msg 5704 (severity 10, state 1) from IGORREINCLOUD: >>> "Changed client character set setting to 'iso_1'. >>> " >> >> This is a successful connection. >> >>> 1> USE draft; >>> 2> go >>> Msg 102 (severity 15, state 181) from IGORREINCLOUD Line 1: >>> "Incorrect syntax near ';'. >>> " >>> 1> USE draft >>> 2> go >>> 1> SELECT * FROM leagues >>> 2> go >>> id name drafttype scoringtype roundvalues leaguetype >>> salary benchplayers >>> 1 Demo - Roto (Auction) 1 1 1 demo 260 0 >>> 2 Demo - Roto (Draft) 3 1 1 demo 260 0 >>> 3 Demo - Points (Auction) 1 2 1 demo 260 0 >>> 4 Demo - Points (Draft) 3 2 1 demo 260 0 >>> (4 rows affected) >>> 1> quit >>> igor at IgorReinCloud ~/dbhandler $ >>> [/code] >>> >>> Do you see any issues with my freeTDS ODBC configuration? >>> >> >> Looking back at ODBC I would say the option is "TDS_Version", not "TDS >> Version", see http://www.freetds.org/userguide/odbcconnattr.htm. >> Usually the steps I take are setting up tsql, then use "Servername" in >> odbc.ini then more from freetds.conf to odbc.ini the various settings >> to get an odbc only configuration. >> >> At the beginning you were using Sybase drivers, with FreeTDS you can >> use TDSDUMP and TDSDUMPCONFIG environment to help debugging, see >> http://www.freetds.org/userguide/logging.htm. > > So the unixODBC isql connection worked. > Now I tried to connect from my program. It failed. > > Here are the lines from the sql.log files: > > [code] > [ODBC][27195][1530943457.280532][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLDriverConnectW.c][290] > Entry: > Connection = 0x292cc00 > Window Hdl = 0x28c62a0 > Str In = > [DSN=Sybase_16_freeTDS;Driver=Sybase_freeTDS][length = 43 (SQL_NTS)] > Str Out = 0x2a87400 > Str Out Max = 1024 > Str Out Ptr = 0x7ffcb68b6550 > Completion = 1 > UNICODE Using encoding ASCII 'UTF8' and UNICODE 'UTF16LE' > > [ODBC][27195][1530943457.327913][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLDriverConnectW.c][699] > Exit:[SQL_ERROR] > [ODBC][27195][1530943457.328028][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLGetDiagRecW.c][516] > Entry: > Connection = 0x292cc00 > Rec Number = 1 > SQLState = 0x7ffcb68b60d0 > Native = 0x7ffcb68b60a4 > Message Text = 0x7ffcb68b6100 > Buffer Length = 1024 > Text Len Ptr = 0x7ffcb68b609c > [ODBC][27195][1530943457.328082][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLGetDiagRecW.c][563] > Exit:[SQL_SUCCESS] > SQLState = [HYC00] > Native = 0x7ffcb68b60a4 -> 0 > Message Text = [[FreeTDS][SQL Server]Driver not capable] > [ODBC][27195][1530943457.328149][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLGetDiagRecW.c][516] > Entry: > Connection = 0x292cc00 > Rec Number = 2 > SQLState = 0x7ffcb68b60d0 > Native = 0x7ffcb68b60a4 > Message Text = 0x7ffcb68b6100 > Buffer Length = 1024 > Text Len Ptr = 0x7ffcb68b609c > [ODBC][27195][1530943457.328198][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLGetDiagRecW.c][563] > Exit:[SQL_SUCCESS] > SQLState = [08001] > Native = 0x7ffcb68b60a4 -> 0 > Message Text = [[FreeTDS][SQL Server]Unable to connect to > data source] > [ODBC][27195][1530943457.328247][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLGetDiagRecW.c][516] > Entry: > Connection = 0x292cc00 > Rec Number = 3 > SQLState = 0x7ffcb68b60d0 > Native = 0x7ffcb68b60a4 > Message Text = 0x7ffcb68b6100 > Buffer Length = 1024 > Text Len Ptr = 0x7ffcb68b609c > [ODBC][27195][1530943457.328283][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLGetDiagRecW.c][563] > Exit:[SQL_NO_DATA] > [ODBC][27195][1530943462.470074][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLFreeHandle.c][290] > Entry: > Handle Type = 2 > Input Handle = 0x292cc00 > [ODBC][27195][1530943462.470352][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLFreeHandle.c][339] > Exit:[SQL_SUCCESS] > [ODBC][27195][1530943462.470433][/var/tmp/portage/dev-db/unixODBC-2.3.5-r1/work/unixODBC-2.3.5/DriverManager/SQLFreeHandle.c][220] > Entry: > Handle Type = 1 > Input Handle = 0x29b6d20 > [/code] > > I presume the "Driver not capable" error comes from the "Completion" parameter? > Or there is something else? > > Please advise. > > Thank you. > >> >>> Thank you. >>> >>>> >>>> Thank you. >>>> >>>> >>>> On Thu, Jun 28, 2018 at 8:02 AM, John Kendall wrote: >>>>> >>>>>> On Jun 28, 2018, at 5:36 AM, Igor Korot wrote: >>>>>> >>>>>> Hi, John, >>>>>> >>>>>> On Wed, Jun 27, 2018 at 11:14 AM, John Kendall wrote: >>>>>>> Igor, >>>>>>> I'm on Centos 7.5 and it looks like I'm using the exact same version of ASE: >>>>>>> Adaptive Server Enterprise/16.0 SP02 PL02/EBF 25320 SMP/P/x86_64/Enterprise Linux/ase160sp02plx/2492/64-bit/FBO/Sat Nov 21 04:05:39 2015 >>>>>>> >>>>>>> I'm using unixODBC 2.3.1 and the freeTDS odbc driver without issue. >>>>>>> I recall having the Sybase ODBC driver working, but settled on the FreeTDS driver for simplicity. >>>>>> >>>>>> This is my setup: >>>>>> >>>>>> [code] >>>>>> igor at IgorReinCloud ~/dbhandler $ cat /etc/unixODBC/odbcinst.ini >>>>>> [ODBC] >>>>>> Trace=yes >>>>>> TraceFile=/tmp/sql.log >>>>>> Pooling=No >>>>>> >>>>>> [Sybase] >>>>>> Description=Sybase 16 Native Driver >>>>>> Driver=/opt/sap/DataAccess64/ODBC/lib/libsybdrvodb.so >>>>>> UsageCount=1 >>>>>> >>>>>> [Sybase_freeTDS] >>>>>> Description=Sybase FreeTDS Driver >>>>>> Driver=/usr/lib64/libtdsodbc.so >>>>>> UsageCount=1 >>>>>> igor at IgorReinCloud ~/dbhandler $ cat /etc/unixODBC/odbc.ini >>>>>> [ODBC Data Sources] >>>>>> Sybase_16_demo=Sybase 16 ODBC driver >>>>>> Sybase_16_test=Sybase 16 ODBC driver >>>>>> Sybase_16_freeTDS=Sybase_freeTDS >>>>>> >>>>>> [Sybase_16_demo] >>>>>> Description=Sybase 16 ODBC Driver >>>>>> Driver=Sybase >>>>>> Port=5000 >>>>>> Server=IGORREINCLOUD >>>>>> UserID=sa >>>>>> Password= >>>>>> Database=pubs2 >>>>>> Option=3 >>>>>> >>>>>> [Sybase_16_test] >>>>>> Description=Sybase 16 ODBC native driver >>>>>> Driver=Sybase >>>>>> Port=5000 >>>>>> Server=IG >>>>>> Server=IGORREINCLOUD >>>>>> UserID=sa >>>>>> Password= >>>>>> Database=draft >>>>>> Option=3 >>>>>> >>>>>> [Sybase_16_freeTDS] >>>>>> Description=Sybase 16 freeTDS ODBC driver >>>>>> Driver=Sybase_freeTDS >>>>>> Port=5000 >>>>>> Server=IGORREINCLOUD >>>>>> UserID=sa >>>>>> Password= >>>>>> Database=draft >>>>>> TDS Version=5.0 >>>>>> Option=3 >>>>>> [/code] >>>>>> >>>>>> And this is from the ODBC log for freeTDS driver: >>>>>> >>>>>> [code] >>>>>> [ODBC][15829][1530200010.883129][/var/tmp/portage/dev-db/unixODBC-2.3.2-r1/work/unixODBC-2.3.2/DriverManager/SQLConnect.c][3727] >>>>>> Entry: >>>>>> Connection = 0x637050 >>>>>> Server Name = [Sybase_16_freeTDS][length = 17 (SQL_NTS)] >>>>>> User Name = [sa][length = 2 (SQL_NTS)] >>>>>> Authentication = [******][length = 6 (SQL_NTS)] >>>>>> UNICODE Using encoding ASCII 'UTF8' and UNICODE 'UTF16LE' >>>>>> >>>>>> DIAG [01000] [FreeTDS][SQL Server]Adaptive Server connection failed >>>>>> >>>>>> DIAG [S1000] [FreeTDS][SQL Server]Unable to connect to data source >>>>>> >>>>>> [ODBC][15829][1530200010.924065][/var/tmp/portage/dev-db/unixODBC-2.3.2-r1/work/unixODBC-2.3.2/DriverManager/SQLConnect.c][4099] >>>>>> Exit:[SQL_ERROR] >>>>>> [/code] >>>>>> >>>>>> The native driver works OK - I can connect without any issues. >>>>>> >>>>>> Do you see any problems? >>>>>> >>>>>> I'm trying to connect with: >>>>>> >>>>>> isql Sybase_16_freeTDS sa >>>>>> >>>>>> Thank you. >>>>> >>>>> Upon further investigation, my ODBC success is via PHP. I am having problems with unixODBC isql as well. >>>>> So I'm no help. >>>>> >>>>>> >>>>>>> >>>>>>> John >>>>>>> >>>>>>> >>>>>>> On Jun 27, 2018, at 10:37 AM, Igor Korot > wrote: >>>>>>> >>>>>>> Hi, ALL, >>>>>>> This post is not directly related to the freeTDS, but I'm hoping that >>>>>>> someone can help. >>>>>>> >>>>>>> I have a latest Sybase 16.0 version Development Edition installed on Linux. >>>>>>> I also have a unixODBC installed. >>>>>>> >>>>>>> I'm trying to connect to the server using the default Sybase ODBC >>>>>>> driver with the >>>>>>> unixODBC isql program. >>>>>>> >>>>>>> Unfortunately I have a problem. The connection works, but then issuing >>>>>>> the simple >>>>>>> query, like "SELECT * FROM ;", where my table is locatedinside >>>>>>> my local database (the one I created) segfaults. >>>>>>> Trying to do the same with the Sybase demo database works fine. >>>>>>> >>>>>>> I didn't try to do anything with the freeTDS driver yet. I will probably do that >>>>>>> over the weekend. >>>>>>> >>>>>>> Does anybody here have Sybase 16 installed? Did you try ODBC connection >>>>>>> to the server? >>>>>>> >>>>>>> Thank you. >>>>>>> >>>>>>> P.S.: Software versions: >>>>>>> 1> select @@version >>>>>>> 2> go >>>>>>> >>>>>>> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ >>>>>>> Adaptive Server Enterprise/16.0 SP02 PL02/EBF 25320 SMP/P/x86_64/Enterprise Lin >>>>>>> ux/ase160sp02plx/2492/64-bit/FBO/Sat Nov 21 04:05:39 2015 >>>>>>> >>>>>>> (1 row affected) >>>>>>> 1> exit >>>>>>> >>>>>>> [/code] >>>>>>> >>>>>>> [code] >>>>>>> >>>>>>> [ebuild U ] dev-db/unixODBC-2.3.5-r1::gentoo [2.3.2-r1::gentoo] >>>>>>> USE="minimal unicode -odbcmanual -static-libs" ABI_X86="32 (64) >>>>>>> (-x32)" 1,596 KiB >>>>>>> >>>>>>> [/code] >>>>>>> >>>>>>> The current version of unixODBC is 2.3.2-r1 from gentoo repository. >> >> Not much experience with Gentoo, looks like directories are completely >> different. >> >> Frediano >> _______________________________________________ >> FreeTDS mailing list >> FreeTDS at lists.ibiblio.org >> https://lists.ibiblio.org/mailman/listinfo/freetds -------------- next part -------------- A non-text attachment was scrubbed... Name: freetds.log.fail Type: application/octet-stream Size: 2760 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: freetds.log.success Type: application/octet-stream Size: 11807 bytes Desc: not available URL: From mjetzer.cdc at gmail.com Mon Jul 16 16:19:59 2018 From: mjetzer.cdc at gmail.com (Mike Jetzer) Date: Mon, 16 Jul 2018 15:19:59 -0500 Subject: [freetds] Lack of SQLDescribeParam() support causes problems with PHP compiled with unixODBC Message-ID: I've compiled PHP 5.6.30 with unixODBC-2.3.5 support but am receiving the following error when attempting to odbc_prepare(): Warning: odbc_prepare(): SQL error: [unixODBC][Driver Manager]Driver does not support this function, SQL state IM001 in SQLDescribeParameter http://www.freetds.org/userguide/php.htm seems to indicate that "everything should run" after compiling PHP with support for ODBC. Google search results (https://bugs.php.net/bug.php?id=54343) indicate that PHP 5.3.3 and prior did not test the return value of SQLDescribeParam(), but newer versions do and thus fail. I downloaded the current version of PHP (php-7.2.7), which also tests the return value of SQLDescribeParam(). I checked the FreeTDS mailing list archives. It seems that SQLDescribeParam() hasn't been discussed much since around 2012. Is there any current or planned work for supporting SQLDescribeParam()? I assume that FreeTDS doesn't currently support this because it's difficult to implement, but can anyone provide an overview of what would be necessary to add support? Thanks! From ikorot01 at gmail.com Fri Jul 20 16:14:25 2018 From: ikorot01 at gmail.com (Igor Korot) Date: Fri, 20 Jul 2018 15:14:25 -0500 Subject: [freetds] Lack of SQLDescribeParam() support causes problems with PHP compiled with unixODBC In-Reply-To: References: Message-ID: Hi, On Mon, Jul 16, 2018 at 3:19 PM, Mike Jetzer wrote: > I've compiled PHP 5.6.30 with unixODBC-2.3.5 support but am receiving the > following error when attempting to odbc_prepare(): > > Warning: odbc_prepare(): SQL error: [unixODBC][Driver Manager]Driver does > not support this function, SQL state IM001 in SQLDescribeParameter > > > http://www.freetds.org/userguide/php.htm seems to indicate that "everything > should run" after compiling PHP with support for ODBC. > > Google search results (https://bugs.php.net/bug.php?id=54343) indicate that > PHP 5.3.3 and prior did not test the return value of SQLDescribeParam(), > but newer versions do and thus fail. I downloaded the current version of > PHP (php-7.2.7), which also tests the return value of SQLDescribeParam(). > > I checked the FreeTDS mailing list archives. It seems that > SQLDescribeParam() hasn't been discussed much since around 2012. Google found this: https://github.com/FreeTDS/freetds/issues/104 with the response from Frediano stating that its just hard to implement (needs query parsing). I presume he is talking about building the query close to this: https://stackoverflow.com/questions/13405572/sql-statement-to-get-column-type and getting the results from running it. There also some discussions that you should set the TDS_Version properly. Just google freetds sqldescribeparam. Thank you. > > Is there any current or planned work for supporting SQLDescribeParam()? > > I assume that FreeTDS doesn't currently support this because it's difficult > to implement, but can anyone provide an overview of what would be necessary > to add support? > > Thanks! > _______________________________________________ > FreeTDS mailing list > FreeTDS at lists.ibiblio.org > https://lists.ibiblio.org/mailman/listinfo/freetds From ikorot01 at gmail.com Sun Jul 22 02:57:59 2018 From: ikorot01 at gmail.com (Igor Korot) Date: Sat, 21 Jul 2018 23:57:59 -0700 Subject: [freetds] Proper query to create table Message-ID: Hi, ALL, I'm trying to execute following query: query1 = L"IF NOT EXISTS(SELECT 1 FROM sysobjects WHERE name = 'abcatcol' AND type = 'U') CREATE TABLE abcatcol( ))"; Unfortunately it fails. If the table does not exist I'm getting 100 (SQL_NO_DATA) from the ODBC driver. And if the table does exist, I'm getting -1 with the error: "The table already exists". Is there a way to do this in 1 shot? Or I will have to do a conditional for Sybase to make it in 2 queries? Please advise. Thank you. From matthew.green at datamartcomputing.com Mon Jul 23 04:39:46 2018 From: matthew.green at datamartcomputing.com (matthew.green at datamartcomputing.com) Date: Mon, 23 Jul 2018 08:39:46 +0000 Subject: [freetds] Proper query to create table In-Reply-To: References: Message-ID: <004cd23f85c8da11f44e047b2a4d0ca4@datamartcomputing.com> Hi Igor, The table already exists error is a normal Sybase error. You'll get the same from isql. There are several ways around this, you could create a temporary stored procedure with the create in or you could put the create statement in a variable and use execute immediate. Cheers, Matt. July 22, 2018 8:58 AM, "Igor Korot" wrote: > Hi, ALL, > I'm trying to execute following query: > > query1 = L"IF NOT EXISTS(SELECT 1 FROM sysobjects WHERE name = > 'abcatcol' AND type = 'U') CREATE TABLE abcatcol( ))"; > > Unfortunately it fails. > If the table does not exist I'm getting 100 (SQL_NO_DATA) from the ODBC > driver. > And if the table does exist, I'm getting -1 with the error: > > "The table already exists". > > Is there a way to do this in 1 shot? Or I will have to do a conditional > for Sybase to make it in 2 queries? > > Please advise. > > Thank you. > _______________________________________________ > FreeTDS mailing list > FreeTDS at lists.ibiblio.org > https://lists.ibiblio.org/mailman/listinfo/freetds From freddy77 at gmail.com Mon Jul 23 05:48:13 2018 From: freddy77 at gmail.com (Frediano Ziglio) Date: Mon, 23 Jul 2018 10:48:13 +0100 Subject: [freetds] Proper query to create table In-Reply-To: References: Message-ID: 2018-07-22 7:57 GMT+01:00 Igor Korot : > Hi, ALL, > I'm trying to execute following query: > > query1 = L"IF NOT EXISTS(SELECT 1 FROM sysobjects WHERE name = > 'abcatcol' AND type = 'U') CREATE TABLE abcatcol( ))"; > > Unfortunately it fails. > If the table does not exist I'm getting 100 (SQL_NO_DATA) from the ODBC > driver. > And if the table does exist, I'm getting -1 with the error: > > "The table already exists". > > Is there a way to do this in 1 shot? Or I will have to do a conditional > for Sybase to make it in 2 queries? > > Please advise. > > Thank you. This works for mssql: if object_id('test123') is null create table test123(i int) Frediano From ikorot01 at gmail.com Mon Jul 23 08:57:49 2018 From: ikorot01 at gmail.com (Igor Korot) Date: Mon, 23 Jul 2018 05:57:49 -0700 Subject: [freetds] Proper query to create table In-Reply-To: References: Message-ID: Hi, On Mon, Jul 23, 2018 at 2:48 AM, Frediano Ziglio wrote: > 2018-07-22 7:57 GMT+01:00 Igor Korot : >> Hi, ALL, >> I'm trying to execute following query: >> >> query1 = L"IF NOT EXISTS(SELECT 1 FROM sysobjects WHERE name = >> 'abcatcol' AND type = 'U') CREATE TABLE abcatcol( ))"; >> >> Unfortunately it fails. >> If the table does not exist I'm getting 100 (SQL_NO_DATA) from the ODBC >> driver. >> And if the table does exist, I'm getting -1 with the error: >> >> "The table already exists". >> >> Is there a way to do this in 1 shot? Or I will have to do a conditional >> for Sybase to make it in 2 queries? >> >> Please advise. >> >> Thank you. > > This works for mssql: > > if object_id('test123') is null create table test123(i int) What about this one: CREATE INDEX IF NOT EXISTS abcattbl_tnam_ownr ON abcattbl(\"abt_tnam\" ASC, \"abt_ownr\" ASC) ? It is on Sybase 16. It says "Syntax error on the 'IF'". Thank you. > > Frediano > _______________________________________________ > FreeTDS mailing list > FreeTDS at lists.ibiblio.org > https://lists.ibiblio.org/mailman/listinfo/freetds From ikorot01 at gmail.com Mon Jul 23 09:01:55 2018 From: ikorot01 at gmail.com (Igor Korot) Date: Mon, 23 Jul 2018 06:01:55 -0700 Subject: [freetds] Proper query to create table In-Reply-To: References: Message-ID: And following statement also fails: IF NOT EXISTS(SELECT o.name, i.name FROM tempdb..sysobjects o, tempdb..sysindexes i WHERE o.id = i.id AND o.name='abcattbl' AND i.name='abcattbl_tnam_ownr') EXECUTE("CREATE INDEX abcattbl_tnam_ownr ON abcattbl(abt_tnam ASC, abt_ownr ASC)") "Could not SQLExecute" Log says "Index already exists" Thank you. On Mon, Jul 23, 2018 at 5:57 AM, Igor Korot wrote: > Hi, > > On Mon, Jul 23, 2018 at 2:48 AM, Frediano Ziglio wrote: >> 2018-07-22 7:57 GMT+01:00 Igor Korot : >>> Hi, ALL, >>> I'm trying to execute following query: >>> >>> query1 = L"IF NOT EXISTS(SELECT 1 FROM sysobjects WHERE name = >>> 'abcatcol' AND type = 'U') CREATE TABLE abcatcol( ))"; >>> >>> Unfortunately it fails. >>> If the table does not exist I'm getting 100 (SQL_NO_DATA) from the ODBC >>> driver. >>> And if the table does exist, I'm getting -1 with the error: >>> >>> "The table already exists". >>> >>> Is there a way to do this in 1 shot? Or I will have to do a conditional >>> for Sybase to make it in 2 queries? >>> >>> Please advise. >>> >>> Thank you. >> >> This works for mssql: >> >> if object_id('test123') is null create table test123(i int) > > What about this one: > > CREATE INDEX IF NOT EXISTS abcattbl_tnam_ownr ON abcattbl(\"abt_tnam\" > ASC, \"abt_ownr\" ASC) > > ? > > It is on Sybase 16. > It says "Syntax error on the 'IF'". > > Thank you. > >> >> Frediano >> _______________________________________________ >> FreeTDS mailing list >> FreeTDS at lists.ibiblio.org >> https://lists.ibiblio.org/mailman/listinfo/freetds From matthew.green at datamartcomputing.com Mon Jul 23 10:31:32 2018 From: matthew.green at datamartcomputing.com (matthew.green at datamartcomputing.com) Date: Mon, 23 Jul 2018 14:31:32 +0000 Subject: [freetds] Proper query to create table In-Reply-To: References: Message-ID: <3359e8afe55360e42cacf08e2af4eb7e@datamartcomputing.com> This works for me on 15.7: create table test (test int not null) declare @i varchar(8000) select @i = "create index I1 on test (test)" if not exists (select 1 from sysindexes where id = object_id("test") and name = "I1") exec(@i) Cheers, Matt. July 23, 2018 3:02 PM, "Igor Korot" wrote: > And following statement also fails: > > IF NOT EXISTS(SELECT o.name, i.name FROM tempdb..sysobjects o, > tempdb..sysindexes i WHERE o.id = i.id AND o.name='abcattbl' AND > i.name='abcattbl_tnam_ownr') EXECUTE("CREATE INDEX abcattbl_tnam_ownr > ON abcattbl(abt_tnam ASC, abt_ownr ASC)") > > "Could not SQLExecute" > > Log says "Index already exists" > > Thank you. > > On Mon, Jul 23, 2018 at 5:57 AM, Igor Korot wrote: > >> Hi, >> >> On Mon, Jul 23, 2018 at 2:48 AM, Frediano Ziglio wrote: >>> 2018-07-22 7:57 GMT+01:00 Igor Korot : >> >> Hi, ALL, >> I'm trying to execute following query: >> >> query1 = L"IF NOT EXISTS(SELECT 1 FROM sysobjects WHERE name = >> 'abcatcol' AND type = 'U') CREATE TABLE abcatcol( ))"; >> >> Unfortunately it fails. >> If the table does not exist I'm getting 100 (SQL_NO_DATA) from the ODBC >> driver. >> And if the table does exist, I'm getting -1 with the error: >> >> "The table already exists". >> >> Is there a way to do this in 1 shot? Or I will have to do a conditional >> for Sybase to make it in 2 queries? >> >> Please advise. >> >> Thank you. >>> This works for mssql: >>> >>> if object_id('test123') is null create table test123(i int) >> >> What about this one: >> >> CREATE INDEX IF NOT EXISTS abcattbl_tnam_ownr ON abcattbl(\"abt_tnam\" >> ASC, \"abt_ownr\" ASC) >> >> ? >> >> It is on Sybase 16. >> It says "Syntax error on the 'IF'". >> >> Thank you. >> >>> Frediano >>> _______________________________________________ >>> FreeTDS mailing list >>> FreeTDS at lists.ibiblio.org >>> https://lists.ibiblio.org/mailman/listinfo/freetds > > _______________________________________________ > FreeTDS mailing list > FreeTDS at lists.ibiblio.org > https://lists.ibiblio.org/mailman/listinfo/freetds From ikorot01 at gmail.com Mon Jul 23 11:20:51 2018 From: ikorot01 at gmail.com (Igor Korot) Date: Mon, 23 Jul 2018 10:20:51 -0500 Subject: [freetds] Proper query to create table In-Reply-To: <3359e8afe55360e42cacf08e2af4eb7e@datamartcomputing.com> References: <3359e8afe55360e42cacf08e2af4eb7e@datamartcomputing.com> Message-ID: Hi, Matthew, On Mon, Jul 23, 2018 at 9:31 AM, wrote: > This works for me on 15.7: > > create table test (test int not null) > > declare @i varchar(8000) > > select @i = "create index I1 on test (test)" > > if not exists (select 1 from sysindexes where id = object_id("test") and name = "I1") > exec(@i) How many times did you run it? When I tried to execute: IF NOT EXISTS(SELECT o.name, i.name FROM tempdb..sysobjects o, tempdb..sysindexes i WHERE o.id = i.id AND o.name='abcattbl' AND i.name='abcattbl_tnam_ownr') EXECUTE("CREATE INDEX abcattbl_tnam_ownr ON abcattbl(abt_tnam ASC, abt_ownr ASC)") when the index already been created, I got: "Could not SQLExecute" And I have Sybase 16.0 installed on Linux Gentoo. Tried the query on isql from unixODBC w/freeTDS driver. Thank you. > > Cheers, > > Matt. > > July 23, 2018 3:02 PM, "Igor Korot" wrote: > >> And following statement also fails: >> >> IF NOT EXISTS(SELECT o.name, i.name FROM tempdb..sysobjects o, >> tempdb..sysindexes i WHERE o.id = i.id AND o.name='abcattbl' AND >> i.name='abcattbl_tnam_ownr') EXECUTE("CREATE INDEX abcattbl_tnam_ownr >> ON abcattbl(abt_tnam ASC, abt_ownr ASC)") >> >> "Could not SQLExecute" >> >> Log says "Index already exists" >> >> Thank you. >> >> On Mon, Jul 23, 2018 at 5:57 AM, Igor Korot wrote: >> >>> Hi, >>> >>> On Mon, Jul 23, 2018 at 2:48 AM, Frediano Ziglio wrote: >>>> 2018-07-22 7:57 GMT+01:00 Igor Korot : >>> >>> Hi, ALL, >>> I'm trying to execute following query: >>> >>> query1 = L"IF NOT EXISTS(SELECT 1 FROM sysobjects WHERE name = >>> 'abcatcol' AND type = 'U') CREATE TABLE abcatcol( ))"; >>> >>> Unfortunately it fails. >>> If the table does not exist I'm getting 100 (SQL_NO_DATA) from the ODBC >>> driver. >>> And if the table does exist, I'm getting -1 with the error: >>> >>> "The table already exists". >>> >>> Is there a way to do this in 1 shot? Or I will have to do a conditional >>> for Sybase to make it in 2 queries? >>> >>> Please advise. >>> >>> Thank you. >>>> This works for mssql: >>>> >>>> if object_id('test123') is null create table test123(i int) >>> >>> What about this one: >>> >>> CREATE INDEX IF NOT EXISTS abcattbl_tnam_ownr ON abcattbl(\"abt_tnam\" >>> ASC, \"abt_ownr\" ASC) >>> >>> ? >>> >>> It is on Sybase 16. >>> It says "Syntax error on the 'IF'". >>> >>> Thank you. >>> >>>> Frediano >>>> _______________________________________________ >>>> FreeTDS mailing list >>>> FreeTDS at lists.ibiblio.org >>>> https://lists.ibiblio.org/mailman/listinfo/freetds >> >> _______________________________________________ >> FreeTDS mailing list >> FreeTDS at lists.ibiblio.org >> https://lists.ibiblio.org/mailman/listinfo/freetds > _______________________________________________ > FreeTDS mailing list > FreeTDS at lists.ibiblio.org > https://lists.ibiblio.org/mailman/listinfo/freetds From matthew.green at datamartcomputing.com Mon Jul 23 12:22:07 2018 From: matthew.green at datamartcomputing.com (matthew.green at datamartcomputing.com) Date: Mon, 23 Jul 2018 16:22:07 +0000 Subject: [freetds] Proper query to create table In-Reply-To: References: <3359e8afe55360e42cacf08e2af4eb7e@datamartcomputing.com> Message-ID: Sorry Igor if I wasn't clear. I ran this from SAP's isql as your original e-mail seemed to me to be more a problem with getting the command right than FreeTDS. So, from isql and now on ASE 16 the following works (adopting more your syntax): if not exists (select 1 from sysobjects where name = "test" and type = "U") exec("create table test (test int not null)") if not exists (select 1 from sysindexes where id = object_id("test") and name = "I1") exec("create index I1 on test (test)") I ran it 20 times, obviously the first time when the table and index don't exist and the following ones when it does :-) I just tried with bsqldb from FreeTDS and it works as expected, the first time creates the table and index and the following executions do nothing and give no errors. Cheers, Matt. July 23, 2018 5:20 PM, "Igor Korot" wrote: > Hi, Matthew, > > On Mon, Jul 23, 2018 at 9:31 AM, wrote: > >> This works for me on 15.7: >> >> create table test (test int not null) >> >> declare @i varchar(8000) >> >> select @i = "create index I1 on test (test)" >> >> if not exists (select 1 from sysindexes where id = object_id("test") and name = "I1") >> exec(@i) > > How many times did you run it? > When I tried to execute: > > IF NOT EXISTS(SELECT o.name, i.name FROM tempdb..sysobjects o, > tempdb..sysindexes i WHERE o.id = i.id AND o.name='abcattbl' AND > i.name='abcattbl_tnam_ownr') EXECUTE("CREATE INDEX abcattbl_tnam_ownr > ON abcattbl(abt_tnam ASC, abt_ownr ASC)") > > when the index already been created, I got: > > "Could not SQLExecute" > > And I have Sybase 16.0 installed on Linux Gentoo. > Tried the query on isql from unixODBC w/freeTDS driver. > > Thank you. > >> Cheers, >> >> Matt. >> >> July 23, 2018 3:02 PM, "Igor Korot" wrote: >> >>> And following statement also fails: >>> >>> IF NOT EXISTS(SELECT o.name, i.name FROM tempdb..sysobjects o, >>> tempdb..sysindexes i WHERE o.id = i.id AND o.name='abcattbl' AND >>> i.name='abcattbl_tnam_ownr') EXECUTE("CREATE INDEX abcattbl_tnam_ownr >>> ON abcattbl(abt_tnam ASC, abt_ownr ASC)") >>> >>> "Could not SQLExecute" >>> >>> Log says "Index already exists" >>> >>> Thank you. >>> >>> On Mon, Jul 23, 2018 at 5:57 AM, Igor Korot wrote: >> >> Hi, >> >> On Mon, Jul 23, 2018 at 2:48 AM, Frediano Ziglio wrote: >> 2018-07-22 7:57 GMT+01:00 Igor Korot : >> >> Hi, ALL, >> I'm trying to execute following query: >> >> query1 = L"IF NOT EXISTS(SELECT 1 FROM sysobjects WHERE name = >> 'abcatcol' AND type = 'U') CREATE TABLE abcatcol( ))"; >> >> Unfortunately it fails. >> If the table does not exist I'm getting 100 (SQL_NO_DATA) from the ODBC >> driver. >> And if the table does exist, I'm getting -1 with the error: >> >> "The table already exists". >> >> Is there a way to do this in 1 shot? Or I will have to do a conditional >> for Sybase to make it in 2 queries? >> >> Please advise. >> >> Thank you. >> This works for mssql: >> >> if object_id('test123') is null create table test123(i int) >> >> What about this one: >> >> CREATE INDEX IF NOT EXISTS abcattbl_tnam_ownr ON abcattbl(\"abt_tnam\" >> ASC, \"abt_ownr\" ASC) >> >> ? >> >> It is on Sybase 16. >> It says "Syntax error on the 'IF'". >> >> Thank you. >> >> Frediano >> _______________________________________________ >> FreeTDS mailing list >> FreeTDS at lists.ibiblio.org >> https://lists.ibiblio.org/mailman/listinfo/freetds >>> _______________________________________________ >>> FreeTDS mailing list >>> FreeTDS at lists.ibiblio.org >>> https://lists.ibiblio.org/mailman/listinfo/freetds >> >> _______________________________________________ >> FreeTDS mailing list >> FreeTDS at lists.ibiblio.org >> https://lists.ibiblio.org/mailman/listinfo/freetds > > _______________________________________________ > FreeTDS mailing list > FreeTDS at lists.ibiblio.org > https://lists.ibiblio.org/mailman/listinfo/freetds From ikorot01 at gmail.com Mon Jul 23 12:34:48 2018 From: ikorot01 at gmail.com (Igor Korot) Date: Mon, 23 Jul 2018 11:34:48 -0500 Subject: [freetds] Proper query to create table In-Reply-To: References: <3359e8afe55360e42cacf08e2af4eb7e@datamartcomputing.com> Message-ID: Hi, Matthew, On Mon, Jul 23, 2018 at 11:22 AM, wrote: > Sorry Igor if I wasn't clear. > > I ran this from SAP's isql as your original e-mail seemed to me to be more a problem with getting the command right than FreeTDS. Yes, you are correct. It is a syntax issue. > > So, from isql and now on ASE 16 the following works (adopting more your syntax): > > if not exists (select 1 from sysobjects where name = "test" and type = "U") > exec("create table test (test int not null)") > > if not exists (select 1 from sysindexes where id = object_id("test") and name = "I1") > exec("create index I1 on test (test)") > > I ran it 20 times, obviously the first time when the table and index don't exist and the following ones when it does :-) That's weird. Does this mean we have a bug in the freeTDS ODBC driver? Frediano? As I said - I ran it from the unixODBC DM and on the second try got "Could not SQLExecute". > > I just tried with bsqldb from FreeTDS and it works as expected, the first time creates the table and index and the following executions do nothing and give no errors. OK. Thank you for testing. I will check it later tonight and report back. But if this works in the Sybase own isql, it should work on ODBC one. > > Cheers, > > Matt. > > July 23, 2018 5:20 PM, "Igor Korot" wrote: > >> Hi, Matthew, >> >> On Mon, Jul 23, 2018 at 9:31 AM, wrote: >> >>> This works for me on 15.7: >>> >>> create table test (test int not null) >>> >>> declare @i varchar(8000) >>> >>> select @i = "create index I1 on test (test)" >>> >>> if not exists (select 1 from sysindexes where id = object_id("test") and name = "I1") >>> exec(@i) >> >> How many times did you run it? >> When I tried to execute: >> >> IF NOT EXISTS(SELECT o.name, i.name FROM tempdb..sysobjects o, >> tempdb..sysindexes i WHERE o.id = i.id AND o.name='abcattbl' AND >> i.name='abcattbl_tnam_ownr') EXECUTE("CREATE INDEX abcattbl_tnam_ownr >> ON abcattbl(abt_tnam ASC, abt_ownr ASC)") >> >> when the index already been created, I got: >> >> "Could not SQLExecute" >> >> And I have Sybase 16.0 installed on Linux Gentoo. >> Tried the query on isql from unixODBC w/freeTDS driver. >> >> Thank you. >> >>> Cheers, >>> >>> Matt. >>> >>> July 23, 2018 3:02 PM, "Igor Korot" wrote: >>> >>>> And following statement also fails: >>>> >>>> IF NOT EXISTS(SELECT o.name, i.name FROM tempdb..sysobjects o, >>>> tempdb..sysindexes i WHERE o.id = i.id AND o.name='abcattbl' AND >>>> i.name='abcattbl_tnam_ownr') EXECUTE("CREATE INDEX abcattbl_tnam_ownr >>>> ON abcattbl(abt_tnam ASC, abt_ownr ASC)") >>>> >>>> "Could not SQLExecute" >>>> >>>> Log says "Index already exists" >>>> >>>> Thank you. >>>> >>>> On Mon, Jul 23, 2018 at 5:57 AM, Igor Korot wrote: >>> >>> Hi, >>> >>> On Mon, Jul 23, 2018 at 2:48 AM, Frediano Ziglio wrote: >>> 2018-07-22 7:57 GMT+01:00 Igor Korot : >>> >>> Hi, ALL, >>> I'm trying to execute following query: >>> >>> query1 = L"IF NOT EXISTS(SELECT 1 FROM sysobjects WHERE name = >>> 'abcatcol' AND type = 'U') CREATE TABLE abcatcol( ))"; >>> >>> Unfortunately it fails. >>> If the table does not exist I'm getting 100 (SQL_NO_DATA) from the ODBC >>> driver. >>> And if the table does exist, I'm getting -1 with the error: >>> >>> "The table already exists". >>> >>> Is there a way to do this in 1 shot? Or I will have to do a conditional >>> for Sybase to make it in 2 queries? >>> >>> Please advise. >>> >>> Thank you. >>> This works for mssql: >>> >>> if object_id('test123') is null create table test123(i int) >>> >>> What about this one: >>> >>> CREATE INDEX IF NOT EXISTS abcattbl_tnam_ownr ON abcattbl(\"abt_tnam\" >>> ASC, \"abt_ownr\" ASC) >>> >>> ? >>> >>> It is on Sybase 16. >>> It says "Syntax error on the 'IF'". >>> >>> Thank you. >>> >>> Frediano >>> _______________________________________________ >>> FreeTDS mailing list >>> FreeTDS at lists.ibiblio.org >>> https://lists.ibiblio.org/mailman/listinfo/freetds >>>> _______________________________________________ >>>> FreeTDS mailing list >>>> FreeTDS at lists.ibiblio.org >>>> https://lists.ibiblio.org/mailman/listinfo/freetds >>> >>> _______________________________________________ >>> FreeTDS mailing list >>> FreeTDS at lists.ibiblio.org >>> https://lists.ibiblio.org/mailman/listinfo/freetds >> >> _______________________________________________ >> FreeTDS mailing list >> FreeTDS at lists.ibiblio.org >> https://lists.ibiblio.org/mailman/listinfo/freetds > _______________________________________________ > FreeTDS mailing list > FreeTDS at lists.ibiblio.org > https://lists.ibiblio.org/mailman/listinfo/freetds From ikorot01 at gmail.com Tue Jul 24 13:44:20 2018 From: ikorot01 at gmail.com (Igor Korot) Date: Tue, 24 Jul 2018 12:44:20 -0500 Subject: [freetds] Proper query to create table In-Reply-To: References: <3359e8afe55360e42cacf08e2af4eb7e@datamartcomputing.com> Message-ID: Hi, Matthew (and list), On Mon, Jul 23, 2018 at 11:34 AM, Igor Korot wrote: > Hi, Matthew, > > On Mon, Jul 23, 2018 at 11:22 AM, wrote: >> Sorry Igor if I wasn't clear. >> >> I ran this from SAP's isql as your original e-mail seemed to me to be more a problem with getting the command right than FreeTDS. > > Yes, you are correct. It is a syntax issue. > >> >> So, from isql and now on ASE 16 the following works (adopting more your syntax): >> >> if not exists (select 1 from sysobjects where name = "test" and type = "U") >> exec("create table test (test int not null)") >> >> if not exists (select 1 from sysindexes where id = object_id("test") and name = "I1") >> exec("create index I1 on test (test)") >> >> I ran it 20 times, obviously the first time when the table and index don't exist and the following ones when it does :-) > > That's weird. > Does this mean we have a bug in the freeTDS ODBC driver? Frediano? > > As I said - I ran it from the unixODBC DM and on the second try got > "Could not SQLExecute". After inspecting my code more closely I found I was checking the tempdb tables and not the actual ones. Stupid me. ;-) I guess I needed a fresh pair of eyes or it was too late. But now I have a more interesting question. Is there a way to add catalog/schema to the "SELECT 1 FROM sysindexes..." query? Thank you. >> >> Cheers, >> >> Matt. >> >> July 23, 2018 5:20 PM, "Igor Korot" wrote: >> >>> Hi, Matthew, >>> >>> On Mon, Jul 23, 2018 at 9:31 AM, wrote: >>> >>>> This works for me on 15.7: >>>> >>>> create table test (test int not null) >>>> >>>> declare @i varchar(8000) >>>> >>>> select @i = "create index I1 on test (test)" >>>> >>>> if not exists (select 1 from sysindexes where id = object_id("test") and name = "I1") >>>> exec(@i) >>> >>> How many times did you run it? >>> When I tried to execute: >>> >>> IF NOT EXISTS(SELECT o.name, i.name FROM tempdb..sysobjects o, >>> tempdb..sysindexes i WHERE o.id = i.id AND o.name='abcattbl' AND >>> i.name='abcattbl_tnam_ownr') EXECUTE("CREATE INDEX abcattbl_tnam_ownr >>> ON abcattbl(abt_tnam ASC, abt_ownr ASC)") >>> >>> when the index already been created, I got: >>> >>> "Could not SQLExecute" >>> >>> And I have Sybase 16.0 installed on Linux Gentoo. >>> Tried the query on isql from unixODBC w/freeTDS driver. >>> >>> Thank you. >>> >>>> Cheers, >>>> >>>> Matt. >>>> >>>> July 23, 2018 3:02 PM, "Igor Korot" wrote: >>>> >>>>> And following statement also fails: >>>>> >>>>> IF NOT EXISTS(SELECT o.name, i.name FROM tempdb..sysobjects o, >>>>> tempdb..sysindexes i WHERE o.id = i.id AND o.name='abcattbl' AND >>>>> i.name='abcattbl_tnam_ownr') EXECUTE("CREATE INDEX abcattbl_tnam_ownr >>>>> ON abcattbl(abt_tnam ASC, abt_ownr ASC)") >>>>> >>>>> "Could not SQLExecute" >>>>> >>>>> Log says "Index already exists" >>>>> >>>>> Thank you. >>>>> >>>>> On Mon, Jul 23, 2018 at 5:57 AM, Igor Korot wrote: >>>> >>>> Hi, >>>> >>>> On Mon, Jul 23, 2018 at 2:48 AM, Frediano Ziglio wrote: >>>> 2018-07-22 7:57 GMT+01:00 Igor Korot : >>>> >>>> Hi, ALL, >>>> I'm trying to execute following query: >>>> >>>> query1 = L"IF NOT EXISTS(SELECT 1 FROM sysobjects WHERE name = >>>> 'abcatcol' AND type = 'U') CREATE TABLE abcatcol( ))"; >>>> >>>> Unfortunately it fails. >>>> If the table does not exist I'm getting 100 (SQL_NO_DATA) from the ODBC >>>> driver. >>>> And if the table does exist, I'm getting -1 with the error: >>>> >>>> "The table already exists". >>>> >>>> Is there a way to do this in 1 shot? Or I will have to do a conditional >>>> for Sybase to make it in 2 queries? >>>> >>>> Please advise. >>>> >>>> Thank you. >>>> This works for mssql: >>>> >>>> if object_id('test123') is null create table test123(i int) >>>> >>>> What about this one: >>>> >>>> CREATE INDEX IF NOT EXISTS abcattbl_tnam_ownr ON abcattbl(\"abt_tnam\" >>>> ASC, \"abt_ownr\" ASC) >>>> >>>> ? >>>> >>>> It is on Sybase 16. >>>> It says "Syntax error on the 'IF'". >>>> >>>> Thank you. >>>> >>>> Frediano >>>> _______________________________________________ >>>> FreeTDS mailing list >>>> FreeTDS at lists.ibiblio.org >>>> https://lists.ibiblio.org/mailman/listinfo/freetds >>>>> _______________________________________________ >>>>> FreeTDS mailing list >>>>> FreeTDS at lists.ibiblio.org >>>>> https://lists.ibiblio.org/mailman/listinfo/freetds >>>> >>>> _______________________________________________ >>>> FreeTDS mailing list >>>> FreeTDS at lists.ibiblio.org >>>> https://lists.ibiblio.org/mailman/listinfo/freetds >>> >>> _______________________________________________ >>> FreeTDS mailing list >>> FreeTDS at lists.ibiblio.org >>> https://lists.ibiblio.org/mailman/listinfo/freetds >> _______________________________________________ >> FreeTDS mailing list >> FreeTDS at lists.ibiblio.org >> https://lists.ibiblio.org/mailman/listinfo/freetds From matthew.green at datamartcomputing.com Wed Jul 25 03:37:02 2018 From: matthew.green at datamartcomputing.com (matthew.green at datamartcomputing.com) Date: Wed, 25 Jul 2018 07:37:02 +0000 Subject: [freetds] Proper query to create table In-Reply-To: References: <3359e8afe55360e42cacf08e2af4eb7e@datamartcomputing.com> Message-ID: Hi Igor, Glad you got it sorted :-) I'm afraid I don't quite understand your follow up question about schema/catalogue. Usually people use this kind of format for adding tables/indexes: If exists (.... drop table/index go create table/index go Rarely, in my experience but sometimes they may wish to only create the table/index if it doesn't already exist but that's already covered by the examples we've exchanged. Which leads me to think that I'm not correctly understanding your question :-) Cheers, Matt. July 24, 2018 7:44 PM, "Igor Korot" wrote: > Hi, Matthew (and list), > > On Mon, Jul 23, 2018 at 11:34 AM, Igor Korot wrote: > >> Hi, Matthew, >> >> On Mon, Jul 23, 2018 at 11:22 AM, wrote: >>> Sorry Igor if I wasn't clear. >>> >>> I ran this from SAP's isql as your original e-mail seemed to me to be more a problem with getting >>> the command right than FreeTDS. >> >> Yes, you are correct. It is a syntax issue. >> >>> So, from isql and now on ASE 16 the following works (adopting more your syntax): >>> >>> if not exists (select 1 from sysobjects where name = "test" and type = "U") >>> exec("create table test (test int not null)") >>> >>> if not exists (select 1 from sysindexes where id = object_id("test") and name = "I1") >>> exec("create index I1 on test (test)") >>> >>> I ran it 20 times, obviously the first time when the table and index don't exist and the following >>> ones when it does :-) >> >> That's weird. >> Does this mean we have a bug in the freeTDS ODBC driver? Frediano? >> >> As I said - I ran it from the unixODBC DM and on the second try got >> "Could not SQLExecute". > > After inspecting my code more closely I found I was checking the > tempdb tables and not the actual ones. > Stupid me. ;-) I guess I needed a fresh pair of eyes or it was too late. > > But now I have a more interesting question. > > Is there a way to add catalog/schema to the "SELECT 1 FROM sysindexes..." query? > > Thank you. > >>> Cheers, >>> >>> Matt. >>> >>> July 23, 2018 5:20 PM, "Igor Korot" wrote: >> >> Hi, Matthew, >> >> On Mon, Jul 23, 2018 at 9:31 AM, wrote: >> >> This works for me on 15.7: >> >> create table test (test int not null) >> >> declare @i varchar(8000) >> >> select @i = "create index I1 on test (test)" >> >> if not exists (select 1 from sysindexes where id = object_id("test") and name = "I1") >> exec(@i) >> >> How many times did you run it? >> When I tried to execute: >> >> IF NOT EXISTS(SELECT o.name, i.name FROM tempdb..sysobjects o, >> tempdb..sysindexes i WHERE o.id = i.id AND o.name='abcattbl' AND >> i.name='abcattbl_tnam_ownr') EXECUTE("CREATE INDEX abcattbl_tnam_ownr >> ON abcattbl(abt_tnam ASC, abt_ownr ASC)") >> >> when the index already been created, I got: >> >> "Could not SQLExecute" >> >> And I have Sybase 16.0 installed on Linux Gentoo. >> Tried the query on isql from unixODBC w/freeTDS driver. >> >> Thank you. >> >> Cheers, >> >> Matt. >> >> July 23, 2018 3:02 PM, "Igor Korot" wrote: >> >> And following statement also fails: >> >> IF NOT EXISTS(SELECT o.name, i.name FROM tempdb..sysobjects o, >> tempdb..sysindexes i WHERE o.id = i.id AND o.name='abcattbl' AND >> i.name='abcattbl_tnam_ownr') EXECUTE("CREATE INDEX abcattbl_tnam_ownr >> ON abcattbl(abt_tnam ASC, abt_ownr ASC)") >> >> "Could not SQLExecute" >> >> Log says "Index already exists" >> >> Thank you. >> >> On Mon, Jul 23, 2018 at 5:57 AM, Igor Korot wrote: >> >> Hi, >> >> On Mon, Jul 23, 2018 at 2:48 AM, Frediano Ziglio wrote: >> 2018-07-22 7:57 GMT+01:00 Igor Korot : >> >> Hi, ALL, >> I'm trying to execute following query: >> >> query1 = L"IF NOT EXISTS(SELECT 1 FROM sysobjects WHERE name = >> 'abcatcol' AND type = 'U') CREATE TABLE abcatcol( ))"; >> >> Unfortunately it fails. >> If the table does not exist I'm getting 100 (SQL_NO_DATA) from the ODBC >> driver. >> And if the table does exist, I'm getting -1 with the error: >> >> "The table already exists". >> >> Is there a way to do this in 1 shot? Or I will have to do a conditional >> for Sybase to make it in 2 queries? >> >> Please advise. >> >> Thank you. >> This works for mssql: >> >> if object_id('test123') is null create table test123(i int) >> >> What about this one: >> >> CREATE INDEX IF NOT EXISTS abcattbl_tnam_ownr ON abcattbl(\"abt_tnam\" >> ASC, \"abt_ownr\" ASC) >> >> ? >> >> It is on Sybase 16. >> It says "Syntax error on the 'IF'". >> >> Thank you. >> >> Frediano >> _______________________________________________ >> FreeTDS mailing list >> FreeTDS at lists.ibiblio.org >> https://lists.ibiblio.org/mailman/listinfo/freetds >> _______________________________________________ >> FreeTDS mailing list >> FreeTDS at lists.ibiblio.org >> https://lists.ibiblio.org/mailman/listinfo/freetds >> >> _______________________________________________ >> FreeTDS mailing list >> FreeTDS at lists.ibiblio.org >> https://lists.ibiblio.org/mailman/listinfo/freetds >> >> _______________________________________________ >> FreeTDS mailing list >> FreeTDS at lists.ibiblio.org >> https://lists.ibiblio.org/mailman/listinfo/freetds >>> _______________________________________________ >>> FreeTDS mailing list >>> FreeTDS at lists.ibiblio.org >>> https://lists.ibiblio.org/mailman/listinfo/freetds > > _______________________________________________ > FreeTDS mailing list > FreeTDS at lists.ibiblio.org > https://lists.ibiblio.org/mailman/listinfo/freetds From ikorot01 at gmail.com Wed Jul 25 09:06:44 2018 From: ikorot01 at gmail.com (Igor Korot) Date: Wed, 25 Jul 2018 08:06:44 -0500 Subject: [freetds] SQLDescribeParam() Message-ID: Hi, Frediano, Is there a plan to implement aforementioned function in freeTDS driver? If not - what is involved in doing so? Thank you. From ikorot01 at gmail.com Wed Jul 25 11:30:13 2018 From: ikorot01 at gmail.com (Igor Korot) Date: Wed, 25 Jul 2018 10:30:13 -0500 Subject: [freetds] Proper query to create table In-Reply-To: References: <3359e8afe55360e42cacf08e2af4eb7e@datamartcomputing.com> Message-ID: Hi, Matthew, On Wed, Jul 25, 2018 at 2:37 AM, wrote: > Hi Igor, > > Glad you got it sorted :-) > > I'm afraid I don't quite understand your follow up question about schema/catalogue. > > Usually people use this kind of format for adding tables/indexes: > > If exists (.... > drop table/index > go > create table/index > go Consider this scenario: CREATE TABLE foo.test() GO CREATE TABLE bar.test() GO IF NOT EXCISTS (SELECT 1 FROM sysindexes WHERE id = object_id("test") AND name = "I1") EXECUTE("CREATE INDEX I1 ON test (test)") What will happen in this case? How the server determine which test to use for verification? And what if I add: CREATE TABLE dbo.test() GO ? Thank you. > > Rarely, in my experience but sometimes they may wish to only create the table/index if it doesn't already exist but that's already covered by the examples we've exchanged. > > Which leads me to think that I'm not correctly understanding your question :-) > > Cheers, > > Matt. > > July 24, 2018 7:44 PM, "Igor Korot" wrote: > >> Hi, Matthew (and list), >> >> On Mon, Jul 23, 2018 at 11:34 AM, Igor Korot wrote: >> >>> Hi, Matthew, >>> >>> On Mon, Jul 23, 2018 at 11:22 AM, wrote: >>>> Sorry Igor if I wasn't clear. >>>> >>>> I ran this from SAP's isql as your original e-mail seemed to me to be more a problem with getting >>>> the command right than FreeTDS. >>> >>> Yes, you are correct. It is a syntax issue. >>> >>>> So, from isql and now on ASE 16 the following works (adopting more your syntax): >>>> >>>> if not exists (select 1 from sysobjects where name = "test" and type = "U") >>>> exec("create table test (test int not null)") >>>> >>>> if not exists (select 1 from sysindexes where id = object_id("test") and name = "I1") >>>> exec("create index I1 on test (test)") >>>> >>>> I ran it 20 times, obviously the first time when the table and index don't exist and the following >>>> ones when it does :-) >>> >>> That's weird. >>> Does this mean we have a bug in the freeTDS ODBC driver? Frediano? >>> >>> As I said - I ran it from the unixODBC DM and on the second try got >>> "Could not SQLExecute". >> >> After inspecting my code more closely I found I was checking the >> tempdb tables and not the actual ones. >> Stupid me. ;-) I guess I needed a fresh pair of eyes or it was too late. >> >> But now I have a more interesting question. >> >> Is there a way to add catalog/schema to the "SELECT 1 FROM sysindexes..." query? >> >> Thank you. >> >>>> Cheers, >>>> >>>> Matt. >>>> >>>> July 23, 2018 5:20 PM, "Igor Korot" wrote: >>> >>> Hi, Matthew, >>> >>> On Mon, Jul 23, 2018 at 9:31 AM, wrote: >>> >>> This works for me on 15.7: >>> >>> create table test (test int not null) >>> >>> declare @i varchar(8000) >>> >>> select @i = "create index I1 on test (test)" >>> >>> if not exists (select 1 from sysindexes where id = object_id("test") and name = "I1") >>> exec(@i) >>> >>> How many times did you run it? >>> When I tried to execute: >>> >>> IF NOT EXISTS(SELECT o.name, i.name FROM tempdb..sysobjects o, >>> tempdb..sysindexes i WHERE o.id = i.id AND o.name='abcattbl' AND >>> i.name='abcattbl_tnam_ownr') EXECUTE("CREATE INDEX abcattbl_tnam_ownr >>> ON abcattbl(abt_tnam ASC, abt_ownr ASC)") >>> >>> when the index already been created, I got: >>> >>> "Could not SQLExecute" >>> >>> And I have Sybase 16.0 installed on Linux Gentoo. >>> Tried the query on isql from unixODBC w/freeTDS driver. >>> >>> Thank you. >>> >>> Cheers, >>> >>> Matt. >>> >>> July 23, 2018 3:02 PM, "Igor Korot" wrote: >>> >>> And following statement also fails: >>> >>> IF NOT EXISTS(SELECT o.name, i.name FROM tempdb..sysobjects o, >>> tempdb..sysindexes i WHERE o.id = i.id AND o.name='abcattbl' AND >>> i.name='abcattbl_tnam_ownr') EXECUTE("CREATE INDEX abcattbl_tnam_ownr >>> ON abcattbl(abt_tnam ASC, abt_ownr ASC)") >>> >>> "Could not SQLExecute" >>> >>> Log says "Index already exists" >>> >>> Thank you. >>> >>> On Mon, Jul 23, 2018 at 5:57 AM, Igor Korot wrote: >>> >>> Hi, >>> >>> On Mon, Jul 23, 2018 at 2:48 AM, Frediano Ziglio wrote: >>> 2018-07-22 7:57 GMT+01:00 Igor Korot : >>> >>> Hi, ALL, >>> I'm trying to execute following query: >>> >>> query1 = L"IF NOT EXISTS(SELECT 1 FROM sysobjects WHERE name = >>> 'abcatcol' AND type = 'U') CREATE TABLE abcatcol( ))"; >>> >>> Unfortunately it fails. >>> If the table does not exist I'm getting 100 (SQL_NO_DATA) from the ODBC >>> driver. >>> And if the table does exist, I'm getting -1 with the error: >>> >>> "The table already exists". >>> >>> Is there a way to do this in 1 shot? Or I will have to do a conditional >>> for Sybase to make it in 2 queries? >>> >>> Please advise. >>> >>> Thank you. >>> This works for mssql: >>> >>> if object_id('test123') is null create table test123(i int) >>> >>> What about this one: >>> >>> CREATE INDEX IF NOT EXISTS abcattbl_tnam_ownr ON abcattbl(\"abt_tnam\" >>> ASC, \"abt_ownr\" ASC) >>> >>> ? >>> >>> It is on Sybase 16. >>> It says "Syntax error on the 'IF'". >>> >>> Thank you. >>> >>> Frediano >>> _______________________________________________ >>> FreeTDS mailing list >>> FreeTDS at lists.ibiblio.org >>> https://lists.ibiblio.org/mailman/listinfo/freetds >>> _______________________________________________ >>> FreeTDS mailing list >>> FreeTDS at lists.ibiblio.org >>> https://lists.ibiblio.org/mailman/listinfo/freetds >>> >>> _______________________________________________ >>> FreeTDS mailing list >>> FreeTDS at lists.ibiblio.org >>> https://lists.ibiblio.org/mailman/listinfo/freetds >>> >>> _______________________________________________ >>> FreeTDS mailing list >>> FreeTDS at lists.ibiblio.org >>> https://lists.ibiblio.org/mailman/listinfo/freetds >>>> _______________________________________________ >>>> FreeTDS mailing list >>>> FreeTDS at lists.ibiblio.org >>>> https://lists.ibiblio.org/mailman/listinfo/freetds >> >> _______________________________________________ >> FreeTDS mailing list >> FreeTDS at lists.ibiblio.org >> https://lists.ibiblio.org/mailman/listinfo/freetds > _______________________________________________ > FreeTDS mailing list > FreeTDS at lists.ibiblio.org > https://lists.ibiblio.org/mailman/listinfo/freetds From matthew.green at datamartcomputing.com Wed Jul 25 12:38:33 2018 From: matthew.green at datamartcomputing.com (matthew.green at datamartcomputing.com) Date: Wed, 25 Jul 2018 16:38:33 +0000 Subject: [freetds] Proper query to create table In-Reply-To: References: <3359e8afe55360e42cacf08e2af4eb7e@datamartcomputing.com> Message-ID: <6c63bff2430d9cb18180e38b01f94f99@datamartcomputing.com> Hi Igor, object_id in ASE can take the owner name too, so use object_id("foo.test"), in fact you can specify the DB name first too if you want. Or you can use uid from sysobjects to do the same thing. As far as I remember object_id, if you don't specify an owner will return the "test" owned by you (so foo.test if you're logged in as foo) in preference to the one owned by dbo. Or, to put it like this, let's say there's foo.test and dbo.test. If you're logged in as foo then object_id("foo") will return the id of foo.test. If you're logged in as another user then you'll get the id of dbo.test (unless that user has also created its own test!). Hope that clarifies things. Cheers, Matt. July 25, 2018 5:30 PM, "Igor Korot" wrote: > Hi, Matthew, > > On Wed, Jul 25, 2018 at 2:37 AM, wrote: > >> Hi Igor, >> >> Glad you got it sorted :-) >> >> I'm afraid I don't quite understand your follow up question about schema/catalogue. >> >> Usually people use this kind of format for adding tables/indexes: >> >> If exists (.... >> drop table/index >> go >> create table/index >> go > > Consider this scenario: > > CREATE TABLE foo.test() > GO > CREATE TABLE bar.test() > GO > IF NOT EXCISTS (SELECT 1 FROM sysindexes WHERE id = object_id("test") > AND name = "I1") > EXECUTE("CREATE INDEX I1 ON test (test)") > > What will happen in this case? > How the server determine which test to use for verification? > And what if I add: > > CREATE TABLE dbo.test() > GO > > ? > > Thank you. > >> Rarely, in my experience but sometimes they may wish to only create the table/index if it doesn't >> already exist but that's already covered by the examples we've exchanged. >> >> Which leads me to think that I'm not correctly understanding your question :-) >> >> Cheers, >> >> Matt. >> >> July 24, 2018 7:44 PM, "Igor Korot" wrote: >> >>> Hi, Matthew (and list), >>> >>> On Mon, Jul 23, 2018 at 11:34 AM, Igor Korot wrote: >> >> Hi, Matthew, >> >> On Mon, Jul 23, 2018 at 11:22 AM, wrote: >> Sorry Igor if I wasn't clear. >> >> I ran this from SAP's isql as your original e-mail seemed to me to be more a problem with getting >> the command right than FreeTDS. >> >> Yes, you are correct. It is a syntax issue. >> >> So, from isql and now on ASE 16 the following works (adopting more your syntax): >> >> if not exists (select 1 from sysobjects where name = "test" and type = "U") >> exec("create table test (test int not null)") >> >> if not exists (select 1 from sysindexes where id = object_id("test") and name = "I1") >> exec("create index I1 on test (test)") >> >> I ran it 20 times, obviously the first time when the table and index don't exist and the following >> ones when it does :-) >> >> That's weird. >> Does this mean we have a bug in the freeTDS ODBC driver? Frediano? >> >> As I said - I ran it from the unixODBC DM and on the second try got >> "Could not SQLExecute". >>> After inspecting my code more closely I found I was checking the >>> tempdb tables and not the actual ones. >>> Stupid me. ;-) I guess I needed a fresh pair of eyes or it was too late. >>> >>> But now I have a more interesting question. >>> >>> Is there a way to add catalog/schema to the "SELECT 1 FROM sysindexes..." query? >>> >>> Thank you. >> >> Cheers, >> >> Matt. >> >> July 23, 2018 5:20 PM, "Igor Korot" wrote: >> >> Hi, Matthew, >> >> On Mon, Jul 23, 2018 at 9:31 AM, wrote: >> >> This works for me on 15.7: >> >> create table test (test int not null) >> >> declare @i varchar(8000) >> >> select @i = "create index I1 on test (test)" >> >> if not exists (select 1 from sysindexes where id = object_id("test") and name = "I1") >> exec(@i) >> >> How many times did you run it? >> When I tried to execute: >> >> IF NOT EXISTS(SELECT o.name, i.name FROM tempdb..sysobjects o, >> tempdb..sysindexes i WHERE o.id = i.id AND o.name='abcattbl' AND >> i.name='abcattbl_tnam_ownr') EXECUTE("CREATE INDEX abcattbl_tnam_ownr >> ON abcattbl(abt_tnam ASC, abt_ownr ASC)") >> >> when the index already been created, I got: >> >> "Could not SQLExecute" >> >> And I have Sybase 16.0 installed on Linux Gentoo. >> Tried the query on isql from unixODBC w/freeTDS driver. >> >> Thank you. >> >> Cheers, >> >> Matt. >> >> July 23, 2018 3:02 PM, "Igor Korot" wrote: >> >> And following statement also fails: >> >> IF NOT EXISTS(SELECT o.name, i.name FROM tempdb..sysobjects o, >> tempdb..sysindexes i WHERE o.id = i.id AND o.name='abcattbl' AND >> i.name='abcattbl_tnam_ownr') EXECUTE("CREATE INDEX abcattbl_tnam_ownr >> ON abcattbl(abt_tnam ASC, abt_ownr ASC)") >> >> "Could not SQLExecute" >> >> Log says "Index already exists" >> >> Thank you. >> >> On Mon, Jul 23, 2018 at 5:57 AM, Igor Korot wrote: >> >> Hi, >> >> On Mon, Jul 23, 2018 at 2:48 AM, Frediano Ziglio wrote: >> 2018-07-22 7:57 GMT+01:00 Igor Korot : >> >> Hi, ALL, >> I'm trying to execute following query: >> >> query1 = L"IF NOT EXISTS(SELECT 1 FROM sysobjects WHERE name = >> 'abcatcol' AND type = 'U') CREATE TABLE abcatcol( ))"; >> >> Unfortunately it fails. >> If the table does not exist I'm getting 100 (SQL_NO_DATA) from the ODBC >> driver. >> And if the table does exist, I'm getting -1 with the error: >> >> "The table already exists". >> >> Is there a way to do this in 1 shot? Or I will have to do a conditional >> for Sybase to make it in 2 queries? >> >> Please advise. >> >> Thank you. >> This works for mssql: >> >> if object_id('test123') is null create table test123(i int) >> >> What about this one: >> >> CREATE INDEX IF NOT EXISTS abcattbl_tnam_ownr ON abcattbl(\"abt_tnam\" >> ASC, \"abt_ownr\" ASC) >> >> ? >> >> It is on Sybase 16. >> It says "Syntax error on the 'IF'". >> >> Thank you. >> >> Frediano >> _______________________________________________ >> FreeTDS mailing list >> FreeTDS at lists.ibiblio.org >> https://lists.ibiblio.org/mailman/listinfo/freetds >> _______________________________________________ >> FreeTDS mailing list >> FreeTDS at lists.ibiblio.org >> https://lists.ibiblio.org/mailman/listinfo/freetds >> >> _______________________________________________ >> FreeTDS mailing list >> FreeTDS at lists.ibiblio.org >> https://lists.ibiblio.org/mailman/listinfo/freetds >> >> _______________________________________________ >> FreeTDS mailing list >> FreeTDS at lists.ibiblio.org >> https://lists.ibiblio.org/mailman/listinfo/freetds >> _______________________________________________ >> FreeTDS mailing list >> FreeTDS at lists.ibiblio.org >> https://lists.ibiblio.org/mailman/listinfo/freetds >>> _______________________________________________ >>> FreeTDS mailing list >>> FreeTDS at lists.ibiblio.org >>> https://lists.ibiblio.org/mailman/listinfo/freetds >> >> _______________________________________________ >> FreeTDS mailing list >> FreeTDS at lists.ibiblio.org >> https://lists.ibiblio.org/mailman/listinfo/freetds > > _______________________________________________ > FreeTDS mailing list > FreeTDS at lists.ibiblio.org > https://lists.ibiblio.org/mailman/listinfo/freetds From ikorot01 at gmail.com Wed Jul 25 18:13:08 2018 From: ikorot01 at gmail.com (Igor Korot) Date: Wed, 25 Jul 2018 17:13:08 -0500 Subject: [freetds] SQLDescribeParam() In-Reply-To: References: Message-ID: Frediano, On Wed, Jul 25, 2018 at 8:06 AM, Igor Korot wrote: > Hi, Frediano, > Is there a plan to implement aforementioned function in freeTDS driver? > If not - what is involved in doing so? It would also be nice if this page: http://www.freetds.org/userguide/odbc.api.summary.htm, explains for 2 functions implemented partially, what's missing. Thank you. > > Thank you. From ikorot01 at gmail.com Sat Jul 28 17:37:50 2018 From: ikorot01 at gmail.com (Igor Korot) Date: Sat, 28 Jul 2018 16:37:50 -0500 Subject: [freetds] Windows build/install Message-ID: Hi, I just built freeTDS on Windows (8.1) laptop with MSVC 2010. Following the User Guide I ran "regsvr32 tdsodbc.dll" from the built directory. Next I ran the ODBC Administrator program, but the driver is nowhere to be found. What am I missing? Thank you. From ikorot01 at gmail.com Sun Jul 29 01:04:03 2018 From: ikorot01 at gmail.com (Igor Korot) Date: Sat, 28 Jul 2018 22:04:03 -0700 Subject: [freetds] Differentiate Sybase from SQL Server Message-ID: Hi, Is there a way to differentiate between Sybase and SQL Server other than by the TDS protocol version? I need an implementation of SQLDescribeCol(), but the information about column is located in a different table for those DBMSes. I can probably check what TDS version is used for a connection, but it is not very reliable way of doing things. Thank you. From john at capps.com Sun Jul 29 01:13:00 2018 From: john at capps.com (John Kendall) Date: Sun, 29 Jul 2018 05:13:00 +0000 Subject: [freetds] Differentiate Sybase from SQL Server In-Reply-To: References: Message-ID: <8E978939-1392-40F0-9405-61F674393839@capps.com> Igor, Would select @@version work for you? John > On Jul 28, 2018, at 10:04 PM, Igor Korot wrote: > > Hi, > Is there a way to differentiate between Sybase and SQL Server > other than by the TDS protocol version? > > I need an implementation of SQLDescribeCol(), but the information > about column is located in a different table for those DBMSes. > I can probably check what TDS version is used for a connection, > but it is not very reliable way of doing things. > > Thank you. > _______________________________________________ > FreeTDS mailing list > FreeTDS at lists.ibiblio.org > https://url.emailprotection.link/?a95lm_Yz0z4VwVi9HMyQSLtTmToR48n_2Es8x43dIoxidNPkdt4wWeUhbwN1QnbrzawQmZ1BjbOu5bK1zLGmRSw~~ From ikorot01 at gmail.com Sun Jul 29 02:11:29 2018 From: ikorot01 at gmail.com (Igor Korot) Date: Sun, 29 Jul 2018 01:11:29 -0500 Subject: [freetds] Differentiate Sybase from SQL Server In-Reply-To: <8E978939-1392-40F0-9405-61F674393839@capps.com> References: <8E978939-1392-40F0-9405-61F674393839@capps.com> Message-ID: Hi, On Sun, Jul 29, 2018 at 12:13 AM, John Kendall wrote: > Igor, > Would > > select @@version > > work for you? It probably will, but I'm curious if there is something inside the tds structure or the statement/connection structure that will help. Unless Frediano has some other idea. Thank you. > John > > > > > >> On Jul 28, 2018, at 10:04 PM, Igor Korot wrote: >> >> Hi, >> Is there a way to differentiate between Sybase and SQL Server >> other than by the TDS protocol version? >> >> I need an implementation of SQLDescribeCol(), but the information >> about column is located in a different table for those DBMSes. >> I can probably check what TDS version is used for a connection, >> but it is not very reliable way of doing things. >> >> Thank you. >> _______________________________________________ >> FreeTDS mailing list >> FreeTDS at lists.ibiblio.org >> https://url.emailprotection.link/?a95lm_Yz0z4VwVi9HMyQSLtTmToR48n_2Es8x43dIoxidNPkdt4wWeUhbwN1QnbrzawQmZ1BjbOu5bK1zLGmRSw~~ > > _______________________________________________ > FreeTDS mailing list > FreeTDS at lists.ibiblio.org > https://lists.ibiblio.org/mailman/listinfo/freetds From john at capps.com Sun Jul 29 02:36:26 2018 From: john at capps.com (John Kendall) Date: Sun, 29 Jul 2018 06:36:26 +0000 Subject: [freetds] Differentiate Sybase from SQL Server In-Reply-To: References: <8E978939-1392-40F0-9405-61F674393839@capps.com> Message-ID: <74CF1537-540B-4FC8-9003-DDCCA3DFB558@capps.com> > On Jul 28, 2018, at 11:11 PM, Igor Korot wrote: > > Hi, > > On Sun, Jul 29, 2018 at 12:13 AM, John Kendall wrote: >> Igor, >> Would >> >> select @@version >> >> work for you? > > It probably will, but I'm curious if there is something inside the tds > structure or the statement/connection > structure that will help. > > Unless Frediano has some other idea. > > Thank you. The TDS version is reliable. If it's 5, it's Sybase. Otherwise it's MS. That's used in src/apps/defncopy.c (line 231): https://github.com/FreeTDS/freetds/blob/master/src/apps/defncopy.c#L231 > >> John >> >> >> >> >> >>> On Jul 28, 2018, at 10:04 PM, Igor Korot wrote: >>> >>> Hi, >>> Is there a way to differentiate between Sybase and SQL Server >>> other than by the TDS protocol version? >>> >>> I need an implementation of SQLDescribeCol(), but the information >>> about column is located in a different table for those DBMSes. >>> I can probably check what TDS version is used for a connection, >>> but it is not very reliable way of doing things. >>> >>> Thank you. >>> _______________________________________________ >>> FreeTDS mailing list >>> FreeTDS at lists.ibiblio.org >>> https://url.emailprotection.link/?a95lm_Yz0z4VwVi9HMyQSLtTmToR48n_2Es8x43dIoxidNPkdt4wWeUhbwN1QnbrzawQmZ1BjbOu5bK1zLGmRSw~~ >> >> _______________________________________________ >> FreeTDS mailing list >> FreeTDS at lists.ibiblio.org >> https://url.emailprotection.link/?a95lm_Yz0z4VwVi9HMyQSLtTmToR48n_2Es8x43dIoxidNPkdt4wWeUhbwN1QnbrzawQmZ1BjbOu5bK1zLGmRSw~~ > _______________________________________________ > FreeTDS mailing list > FreeTDS at lists.ibiblio.org > https://url.emailprotection.link/?a95lm_Yz0z4VwVi9HMyQSLtTmToR48n_2Es8x43dIoxidNPkdt4wWeUhbwN1QnbrzawQmZ1BjbOu5bK1zLGmRSw~~ From alex at unexpectedeof.net Fri Jul 27 07:37:58 2018 From: alex at unexpectedeof.net (Alex) Date: Fri, 27 Jul 2018 07:37:58 -0400 Subject: [freetds] Appveyor master artifacts Message-ID: <1e692767-d27e-9ca1-6786-3376db51b623@unexpectedeof.net> Hi, I was wondering if the master branch appveyor build artifacts should still be accessible via the appveyor artifacts api similar the Branch-1_00? https://ci.appveyor.com/api/projects/FreeTDS/freetds/ I can see Branch-1_00 and access the various builds by doing something like: https://ci.appveyor.com/api/projects/FreeTDS/freetds/artifacts/vs2008_32-Branch-1_00.zip?job=Environment%3A%20PLAT%3DWin32%2C%20WIDTH%3D32%2C%20VS_VERSION%3D2008%2C%20TDSVER%3D7.0 However doing similar with the master branch to retrieve a version without ssl fails: https://ci.appveyor.com/api/projects/FreeTDS/freetds/artifacts/vs2008_32-master_withoutssl.zip?job=Environment%3A%20PLAT%3DWin32%2C%20WIDTH%3D32%2C%20VS_VERSION%3D2008%2C%20TDSVER%3D7.0 When looking at the xml of the first link above I see both branches, but noticed that Branch-1_00 appears to be the only one with build job name nodes and artifacts. I believe master artifacts were accessible via the api historically, but maybe something changes? Let me know if I can provide any extra details or information. Thanks, Alex From freddy77 at gmail.com Sun Jul 29 02:53:39 2018 From: freddy77 at gmail.com (Frediano Ziglio) Date: Sun, 29 Jul 2018 07:53:39 +0100 Subject: [freetds] Differentiate Sybase from SQL Server In-Reply-To: References: Message-ID: 2018-07-29 6:04 GMT+01:00 Igor Korot : > Hi, > Is there a way to differentiate between Sybase and SQL Server > other than by the TDS protocol version? > > I need an implementation of SQLDescribeCol(), but the information > about column is located in a different table for those DBMSes. > I can probably check what TDS version is used for a connection, > but it is not very reliable way of doing things. > > Thank you. @@version surely works, or you can use SQLGetInfo with SQL_DBMS_NAME (see for instance odbc_db_is_microsoft in src/odbc/unittests/common.c). There's also an extension for SQLGetInfo to get the protocol version, 1300 will get the version as 0xMM00mm (MM major mm minor), see odbc_tds_version in src/odbc/unittests/common.c. Frediano From ikorot01 at gmail.com Sun Jul 29 12:45:22 2018 From: ikorot01 at gmail.com (Igor Korot) Date: Sun, 29 Jul 2018 11:45:22 -0500 Subject: [freetds] Differentiate Sybase from SQL Server In-Reply-To: References: Message-ID: Hi, Frediano, On Sun, Jul 29, 2018 at 1:53 AM, Frediano Ziglio wrote: > 2018-07-29 6:04 GMT+01:00 Igor Korot : >> Hi, >> Is there a way to differentiate between Sybase and SQL Server >> other than by the TDS protocol version? >> >> I need an implementation of SQLDescribeCol(), but the information >> about column is located in a different table for those DBMSes. >> I can probably check what TDS version is used for a connection, >> but it is not very reliable way of doing things. >> >> Thank you. > > @@version surely works, or you can use SQLGetInfo with SQL_DBMS_NAME > (see for instance > odbc_db_is_microsoft in src/odbc/unittests/common.c). > > There's also an extension for SQLGetInfo to get the protocol version, > 1300 will get > the version as 0xMM00mm (MM major mm minor), see odbc_tds_version in > src/odbc/unittests/common.c. I'm sure all of those will work, but I believe it will be an extra burden on the SQLDescribeParam implementation. It just will be an extra database hit that is completely unnecessary. I will see if John's solution will work. Thank you. > > Frediano > _______________________________________________ > FreeTDS mailing list > FreeTDS at lists.ibiblio.org > https://lists.ibiblio.org/mailman/listinfo/freetds From freddy77 at gmail.com Sun Jul 29 15:17:51 2018 From: freddy77 at gmail.com (Frediano Ziglio) Date: Sun, 29 Jul 2018 20:17:51 +0100 Subject: [freetds] Appveyor master artifacts In-Reply-To: <1e692767-d27e-9ca1-6786-3376db51b623@unexpectedeof.net> References: <1e692767-d27e-9ca1-6786-3376db51b623@unexpectedeof.net> Message-ID: 2018-07-27 12:37 GMT+01:00 Alex : > Hi, > > I was wondering if the master branch appveyor build artifacts should still > be accessible via the appveyor artifacts api similar the Branch-1_00? > > https://ci.appveyor.com/api/projects/FreeTDS/freetds/ > Looks like this is just the last build, which is a Branch-1_00. I think https://ci.appveyor.com/api/projects/FreeTDS/freetds/branch/master is the URL for master branch specifically > I can see Branch-1_00 and access the various builds by doing something like: > > https://ci.appveyor.com/api/projects/FreeTDS/freetds/artifacts/vs2008_32-Branch-1_00.zip?job=Environment%3A%20PLAT%3DWin32%2C%20WIDTH%3D32%2C%20VS_VERSION%3D2008%2C%20TDSVER%3D7.0 > I was able to download a file at https://ci.appveyor.com/api/projects/FreeTDS/freetds/artifacts/vs2008_32-master_withoutssl.zip?branch=master&job=Environment%3A%20PLAT%3DWin32%2C%20WIDTH%3D32%2C%20VS_VERSION%3D2008%2C%20TDSVER%3D7.0 (all a mix of attempts looking yours and https://www.appveyor.com/docs/packaging-artifacts/) > However doing similar with the master branch to retrieve a version without > ssl fails: > > https://ci.appveyor.com/api/projects/FreeTDS/freetds/artifacts/vs2008_32-master_withoutssl.zip?job=Environment%3A%20PLAT%3DWin32%2C%20WIDTH%3D32%2C%20VS_VERSION%3D2008%2C%20TDSVER%3D7.0 > > When looking at the xml of the first link above I see both branches, but > noticed that Branch-1_00 appears to be the only one with build job name > nodes and artifacts. I believe master artifacts were accessible via the api > historically, but maybe something changes? > > Let me know if I can provide any extra details or information. > > Thanks, > > Alex > Frediano From ikorot01 at gmail.com Sun Jul 29 17:44:56 2018 From: ikorot01 at gmail.com (Igor Korot) Date: Sun, 29 Jul 2018 16:44:56 -0500 Subject: [freetds] freeTDS on Windows Message-ID: Hi, Frediano, I just built the FreeTDS on Windows (8.1) with MSVC 2010. The build went fine - no errors. Next I registered the ODBC driver with the regsvr32 utility. No issues there. So far, so good. Next I opened ODBC Administrator utility (64-bit) from Windows. Click "Add..." to add a User DSN and selected the FreeTDS driver. Here is where the problem began - after sometime the ODBC Administrator window crashed. The library was compiled with the default settings. I generated an appropriate solution opened up the solution "BUILD ALL" one and did the whole build. The crash happened somewhere inside the Windows CRT according to the backtrace. I can provide one on request. The version I'm using is 1.00.41. Is it something that is fixed in the later version or something new? Thank you. From alex at unexpectedeof.net Sun Jul 29 23:36:20 2018 From: alex at unexpectedeof.net (Alex) Date: Sun, 29 Jul 2018 23:36:20 -0400 Subject: [freetds] Appveyor master artifacts In-Reply-To: References: <1e692767-d27e-9ca1-6786-3376db51b623@unexpectedeof.net> Message-ID: <17c18b09-9f4e-fab2-4981-49f1b5af542f@unexpectedeof.net> Got it. Thank you Frediano. Appreciate the help and direction. Alex On 07/29/2018 03:17 PM, Frediano Ziglio wrote: > 2018-07-27 12:37 GMT+01:00 Alex : >> Hi, >> >> I was wondering if the master branch appveyor build artifacts should still >> be accessible via the appveyor artifacts api similar the Branch-1_00? >> >> https://ci.appveyor.com/api/projects/FreeTDS/freetds/ >> > Looks like this is just the last build, which is a Branch-1_00. > I think https://ci.appveyor.com/api/projects/FreeTDS/freetds/branch/master > is the URL for master branch specifically > >> I can see Branch-1_00 and access the various builds by doing something like: >> >> https://ci.appveyor.com/api/projects/FreeTDS/freetds/artifacts/vs2008_32-Branch-1_00.zip?job=Environment%3A%20PLAT%3DWin32%2C%20WIDTH%3D32%2C%20VS_VERSION%3D2008%2C%20TDSVER%3D7.0 >> > I was able to download a file at > https://ci.appveyor.com/api/projects/FreeTDS/freetds/artifacts/vs2008_32-master_withoutssl.zip?branch=master&job=Environment%3A%20PLAT%3DWin32%2C%20WIDTH%3D32%2C%20VS_VERSION%3D2008%2C%20TDSVER%3D7.0 > (all a mix of attempts looking yours and > https://www.appveyor.com/docs/packaging-artifacts/) > >> However doing similar with the master branch to retrieve a version without >> ssl fails: >> >> https://ci.appveyor.com/api/projects/FreeTDS/freetds/artifacts/vs2008_32-master_withoutssl.zip?job=Environment%3A%20PLAT%3DWin32%2C%20WIDTH%3D32%2C%20VS_VERSION%3D2008%2C%20TDSVER%3D7.0 >> >> When looking at the xml of the first link above I see both branches, but >> noticed that Branch-1_00 appears to be the only one with build job name >> nodes and artifacts. I believe master artifacts were accessible via the api >> historically, but maybe something changes? >> >> Let me know if I can provide any extra details or information. >> >> Thanks, >> >> Alex >> > Frediano > _______________________________________________ > FreeTDS mailing list > FreeTDS at lists.ibiblio.org > https://lists.ibiblio.org/mailman/listinfo/freetds From freddy77 at gmail.com Mon Jul 30 02:34:56 2018 From: freddy77 at gmail.com (Frediano Ziglio) Date: Mon, 30 Jul 2018 07:34:56 +0100 Subject: [freetds] freeTDS on Windows In-Reply-To: References: Message-ID: 2018-07-29 22:44 GMT+01:00 Igor Korot : > Hi, Frediano, > I just built the FreeTDS on Windows (8.1) with MSVC 2010. > The build went fine - no errors. > > Next I registered the ODBC driver with the regsvr32 utility. No > issues there. So far, so good. > > Next I opened ODBC Administrator utility (64-bit) from Windows. > Click "Add..." to add a User DSN and selected the FreeTDS driver. > > Here is where the problem began - after sometime the ODBC Administrator > window crashed. > > The library was compiled with the default settings. I generated an > appropriate solution opened up the solution "BUILD ALL" one > and did the whole build. > > The crash happened somewhere inside the Windows CRT according > to the backtrace. > > I can provide one on request. > > The version I'm using is 1.00.41. > > Is it something that is fixed in the later version or something new? > > Thank you. Looks like something new, never had any report/issue about this. Frediano From ikorot01 at gmail.com Mon Jul 30 08:59:21 2018 From: ikorot01 at gmail.com (Igor Korot) Date: Mon, 30 Jul 2018 07:59:21 -0500 Subject: [freetds] freeTDS on Windows In-Reply-To: References: Message-ID: Frediano, Below is the call stack at the time of the crash. Do you see anything wrong here? Are you able to reproduce it? When the "DSN Configuration" dialog shows up, let it sit for some time and then it will either crash on it own or you try to fill the DSN Name and move the mouse or do something else. Thank you. > msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 252 + 0x1e bytes C msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 242 C msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, ...) Line 258 + 0x2c bytes C msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 383 + 0x5 bytes C++ msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int nhFlag, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 239 + 0x22 bytes C++ msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 601 + 0x2c bytes C++ msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C msvcr100d.dll!_errno() Line 280 + 0x5 bytes C msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 298 + 0x5 bytes C msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 242 C msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, ...) Line 258 + 0x2c bytes C msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 383 + 0x5 bytes C++ msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int nhFlag, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 239 + 0x22 bytes C++ msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 601 + 0x2c bytes C++ msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C msvcr100d.dll!_errno() Line 280 + 0x5 bytes C msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 298 + 0x5 bytes C msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 242 C msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, ...) Line 258 + 0x2c bytes C msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 383 + 0x5 bytes C++ msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int nhFlag, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 239 + 0x22 bytes C++ msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 601 + 0x2c bytes C++ msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C msvcr100d.dll!_errno() Line 280 + 0x5 bytes C msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 298 + 0x5 bytes C msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 242 C msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, ...) Line 258 + 0x2c bytes C msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 383 + 0x5 bytes C++ msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int nhFlag, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 239 + 0x22 bytes C++ msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 601 + 0x2c bytes C++ msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C msvcr100d.dll!_errno() Line 280 + 0x5 bytes C msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 298 + 0x5 bytes C msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 242 C msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, ...) Line 258 + 0x2c bytes C msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 383 + 0x5 bytes C++ msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int nhFlag, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 239 + 0x22 bytes C++ msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 601 + 0x2c bytes C++ msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C msvcr100d.dll!_errno() Line 280 + 0x5 bytes C msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 298 + 0x5 bytes C msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 242 C msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, ...) Line 258 + 0x2c bytes C msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 383 + 0x5 bytes C++ msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int nhFlag, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 239 + 0x22 bytes C++ msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 601 + 0x2c bytes C++ msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C msvcr100d.dll!_errno() Line 280 + 0x5 bytes C msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 298 + 0x5 bytes C msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 242 C msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, ...) Line 258 + 0x2c bytes C msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 383 + 0x5 bytes C++ msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int nhFlag, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 239 + 0x22 bytes C++ msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 601 + 0x2c bytes C++ msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C msvcr100d.dll!_errno() Line 280 + 0x5 bytes C msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 298 + 0x5 bytes C msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 242 C msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, ...) Line 258 + 0x2c bytes C msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 383 + 0x5 bytes C++ msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int nhFlag, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 239 + 0x22 bytes C++ msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 601 + 0x2c bytes C++ msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C msvcr100d.dll!_errno() Line 280 + 0x5 bytes C msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 298 + 0x5 bytes C msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 242 C msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, ...) Line 258 + 0x2c bytes C msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 383 + 0x5 bytes C++ msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int nhFlag, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 239 + 0x22 bytes C++ msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 601 + 0x2c bytes C++ msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C msvcr100d.dll!_errno() Line 280 + 0x5 bytes C msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 298 + 0x5 bytes C msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 242 C msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, ...) Line 258 + 0x2c bytes C msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 383 + 0x5 bytes C++ msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int nhFlag, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 239 + 0x22 bytes C++ msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 601 + 0x2c bytes C++ msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C msvcr100d.dll!_errno() Line 280 + 0x5 bytes C msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 298 + 0x5 bytes C msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 242 C msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, ...) Line 258 + 0x2c bytes C msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 383 + 0x5 bytes C++ msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int nhFlag, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 239 + 0x22 bytes C++ msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 601 + 0x2c bytes C++ msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C msvcr100d.dll!_errno() Line 280 + 0x5 bytes C msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 298 + 0x5 bytes C msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 242 C msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, ...) Line 258 + 0x2c bytes C msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 383 + 0x5 bytes C++ msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int nhFlag, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 239 + 0x22 bytes C++ msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 601 + 0x2c bytes C++ msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C msvcr100d.dll!_errno() Line 280 + 0x5 bytes C msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 298 + 0x5 bytes C msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 242 C msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, ...) Line 258 + 0x2c bytes C msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 383 + 0x5 bytes C++ msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int nhFlag, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 239 + 0x22 bytes C++ msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 601 + 0x2c bytes C++ msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C msvcr100d.dll!_errno() Line 280 + 0x5 bytes C msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 298 + 0x5 bytes C msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 242 C msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, ...) Line 258 + 0x2c bytes C msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 383 + 0x5 bytes C++ msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int nhFlag, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 239 + 0x22 bytes C++ msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 601 + 0x2c bytes C++ msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C msvcr100d.dll!_errno() Line 280 + 0x5 bytes C msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 298 + 0x5 bytes C msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 242 C msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, ...) Line 258 + 0x2c bytes C msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 383 + 0x5 bytes C++ msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int nhFlag, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 239 + 0x22 bytes C++ msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 601 + 0x2c bytes C++ msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C msvcr100d.dll!_errno() Line 280 + 0x5 bytes C msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 298 + 0x5 bytes C msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 242 C msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, ...) Line 258 + 0x2c bytes C msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 383 + 0x5 bytes C++ msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int nhFlag, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 239 + 0x22 bytes C++ msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 601 + 0x2c bytes C++ msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C msvcr100d.dll!_errno() Line 280 + 0x5 bytes C msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 298 + 0x5 bytes C msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 242 C msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, ...) Line 258 + 0x2c bytes C msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 383 + 0x5 bytes C++ msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int nhFlag, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 239 + 0x22 bytes C++ msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 601 + 0x2c bytes C++ msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C msvcr100d.dll!_errno() Line 280 + 0x5 bytes C msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 298 + 0x5 bytes C msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 242 C msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, ...) Line 258 + 0x2c bytes C msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 383 + 0x5 bytes C++ msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int nhFlag, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 239 + 0x22 bytes C++ msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 601 + 0x2c bytes C++ msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C msvcr100d.dll!_errno() Line 280 + 0x5 bytes C msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 298 + 0x5 bytes C msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 242 C msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, ...) Line 258 + 0x2c bytes C msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 383 + 0x5 bytes C++ msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int nhFlag, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 239 + 0x22 bytes C++ msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 601 + 0x2c bytes C++ msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C msvcr100d.dll!_errno() Line 280 + 0x5 bytes C msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 298 + 0x5 bytes C msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 242 C msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, ...) Line 258 + 0x2c bytes C msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 383 + 0x5 bytes C++ msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int nhFlag, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 239 + 0x22 bytes C++ msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 601 + 0x2c bytes C++ msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C msvcr100d.dll!_errno() Line 280 + 0x5 bytes C msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 298 + 0x5 bytes C msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 242 C msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, ...) Line 258 + 0x2c bytes C msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 383 + 0x5 bytes C++ msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int nhFlag, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 239 + 0x22 bytes C++ msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 601 + 0x2c bytes C++ msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C msvcr100d.dll!_errno() Line 280 + 0x5 bytes C msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 298 + 0x5 bytes C msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 242 C msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, ...) Line 258 + 0x2c bytes C msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 383 + 0x5 bytes C++ msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int nhFlag, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 239 + 0x22 bytes C++ msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 601 + 0x2c bytes C++ msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C msvcr100d.dll!_errno() Line 280 + 0x5 bytes C msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 298 + 0x5 bytes C msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 242 C msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, ...) Line 258 + 0x2c bytes C msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 383 + 0x5 bytes C++ msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int nhFlag, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 239 + 0x22 bytes C++ msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 601 + 0x2c bytes C++ msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C msvcr100d.dll!_errno() Line 280 + 0x5 bytes C msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 298 + 0x5 bytes C msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 242 C msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, ...) Line 258 + 0x2c bytes C msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 383 + 0x5 bytes C++ msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int nhFlag, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 239 + 0x22 bytes C++ msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 601 + 0x2c bytes C++ msvcr100d.dll!_calloc_dbg(unsigned __int64 nNum, unsigned __int64 nSize, int nBlockUse, const char * szFileName, int nLine) Line 652 + 0x2b bytes C++ msvcr100d.dll!__CRTDLL_INIT(void * hDllHandle, unsigned long dwReason, void * lpreserved) Line 375 + 0x24 bytes C msvcr100d.dll!_CRTDLL_INIT(void * hDllHandle, unsigned long dwReason, void * lpreserved) Line 218 C ntdll.dll!00007ff92eacc114() [Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll] ntdll.dll!00007ff92eacbddb() ntdll.dll!00007ff92eac8d7e() ntdll.dll!00007ff92eac8c9e() On Mon, Jul 30, 2018 at 1:34 AM, Frediano Ziglio wrote: > 2018-07-29 22:44 GMT+01:00 Igor Korot : >> Hi, Frediano, >> I just built the FreeTDS on Windows (8.1) with MSVC 2010. >> The build went fine - no errors. >> >> Next I registered the ODBC driver with the regsvr32 utility. No >> issues there. So far, so good. >> >> Next I opened ODBC Administrator utility (64-bit) from Windows. >> Click "Add..." to add a User DSN and selected the FreeTDS driver. >> >> Here is where the problem began - after sometime the ODBC Administrator >> window crashed. >> >> The library was compiled with the default settings. I generated an >> appropriate solution opened up the solution "BUILD ALL" one >> and did the whole build. >> >> The crash happened somewhere inside the Windows CRT according >> to the backtrace. >> >> I can provide one on request. >> >> The version I'm using is 1.00.41. >> >> Is it something that is fixed in the later version or something new? >> >> Thank you. > > Looks like something new, never had any report/issue about this. > > Frediano > _______________________________________________ > FreeTDS mailing list > FreeTDS at lists.ibiblio.org > https://lists.ibiblio.org/mailman/listinfo/freetds From freddy77 at gmail.com Tue Jul 31 02:43:02 2018 From: freddy77 at gmail.com (Frediano Ziglio) Date: Tue, 31 Jul 2018 07:43:02 +0100 Subject: [freetds] freeTDS on Windows In-Reply-To: References: Message-ID: 2018-07-30 13:59 GMT+01:00 Igor Korot : > Frediano, > Below is the call stack at the time of the crash. > Do you see anything wrong here? Are you able to reproduce it? > When the "DSN Configuration" dialog shows up, let it sit for some time > and then it will either > crash on it own or you try to fill the DSN Name and move the mouse or > do something else. > > Thank you. > Looks like: - you are using a debug version (which enable some memory checks); - some ODBC module has a memory issue (not necessarily FreeTDS); - msvcr100d.dll has a recursive bug reporting the error. I would use the release version and potentially report the bug to Microsoft. Frediano > >> msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 252 + 0x1e bytes C > msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 242 C > msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, ...) Line > 258 + 0x2c bytes C > msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ > msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int > nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line > 383 + 0x5 bytes C++ > msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int > nhFlag, int nBlockUse, const char * szFileName, int nLine, int * > errno_tmp) Line 239 + 0x22 bytes C++ > msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned > __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int > * errno_tmp) Line 601 + 0x2c bytes C++ > msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C > msvcr100d.dll!_errno() Line 280 + 0x5 bytes C > msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 298 + 0x5 bytes C > msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 242 C > msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, ...) Line > 258 + 0x2c bytes C > msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ > msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int > nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line > 383 + 0x5 bytes C++ > msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int > nhFlag, int nBlockUse, const char * szFileName, int nLine, int * > errno_tmp) Line 239 + 0x22 bytes C++ > msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned > __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int > * errno_tmp) Line 601 + 0x2c bytes C++ > msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C > msvcr100d.dll!_errno() Line 280 + 0x5 bytes C > msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 298 + 0x5 bytes C > msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 242 C > msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, ...) Line > 258 + 0x2c bytes C > msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ > msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int > nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line > 383 + 0x5 bytes C++ > msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int > nhFlag, int nBlockUse, const char * szFileName, int nLine, int * > errno_tmp) Line 239 + 0x22 bytes C++ > msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned > __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int > * errno_tmp) Line 601 + 0x2c bytes C++ > msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C > msvcr100d.dll!_errno() Line 280 + 0x5 bytes C > msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 298 + 0x5 bytes C > msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 242 C > msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, ...) Line > 258 + 0x2c bytes C > msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ > msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int > nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line > 383 + 0x5 bytes C++ > msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int > nhFlag, int nBlockUse, const char * szFileName, int nLine, int * > errno_tmp) Line 239 + 0x22 bytes C++ > msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned > __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int > * errno_tmp) Line 601 + 0x2c bytes C++ > msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C > msvcr100d.dll!_errno() Line 280 + 0x5 bytes C > msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 298 + 0x5 bytes C > msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 242 C > msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, ...) Line > 258 + 0x2c bytes C > msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ > msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int > nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line > 383 + 0x5 bytes C++ > msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int > nhFlag, int nBlockUse, const char * szFileName, int nLine, int * > errno_tmp) Line 239 + 0x22 bytes C++ > msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned > __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int > * errno_tmp) Line 601 + 0x2c bytes C++ > msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C > msvcr100d.dll!_errno() Line 280 + 0x5 bytes C > msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 298 + 0x5 bytes C > msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 242 C > msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, ...) Line > 258 + 0x2c bytes C > msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ > msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int > nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line > 383 + 0x5 bytes C++ > msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int > nhFlag, int nBlockUse, const char * szFileName, int nLine, int * > errno_tmp) Line 239 + 0x22 bytes C++ > msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned > __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int > * errno_tmp) Line 601 + 0x2c bytes C++ > msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C > msvcr100d.dll!_errno() Line 280 + 0x5 bytes C > msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 298 + 0x5 bytes C > msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 242 C > msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, ...) Line > 258 + 0x2c bytes C > msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ > msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int > nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line > 383 + 0x5 bytes C++ > msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int > nhFlag, int nBlockUse, const char * szFileName, int nLine, int * > errno_tmp) Line 239 + 0x22 bytes C++ > msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned > __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int > * errno_tmp) Line 601 + 0x2c bytes C++ > msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C > msvcr100d.dll!_errno() Line 280 + 0x5 bytes C > msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 298 + 0x5 bytes C > msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 242 C > msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, ...) Line > 258 + 0x2c bytes C > msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ > msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int > nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line > 383 + 0x5 bytes C++ > msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int > nhFlag, int nBlockUse, const char * szFileName, int nLine, int * > errno_tmp) Line 239 + 0x22 bytes C++ > msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned > __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int > * errno_tmp) Line 601 + 0x2c bytes C++ > msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C > msvcr100d.dll!_errno() Line 280 + 0x5 bytes C > msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 298 + 0x5 bytes C > msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 242 C > msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, ...) Line > 258 + 0x2c bytes C > msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ > msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int > nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line > 383 + 0x5 bytes C++ > msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int > nhFlag, int nBlockUse, const char * szFileName, int nLine, int * > errno_tmp) Line 239 + 0x22 bytes C++ > msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned > __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int > * errno_tmp) Line 601 + 0x2c bytes C++ > msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C > msvcr100d.dll!_errno() Line 280 + 0x5 bytes C > msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 298 + 0x5 bytes C > msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 242 C > msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, ...) Line > 258 + 0x2c bytes C > msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ > msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int > nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line > 383 + 0x5 bytes C++ > msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int > nhFlag, int nBlockUse, const char * szFileName, int nLine, int * > errno_tmp) Line 239 + 0x22 bytes C++ > msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned > __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int > * errno_tmp) Line 601 + 0x2c bytes C++ > msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C > msvcr100d.dll!_errno() Line 280 + 0x5 bytes C > msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 298 + 0x5 bytes C > msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 242 C > msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, ...) Line > 258 + 0x2c bytes C > msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ > msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int > nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line > 383 + 0x5 bytes C++ > msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int > nhFlag, int nBlockUse, const char * szFileName, int nLine, int * > errno_tmp) Line 239 + 0x22 bytes C++ > msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned > __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int > * errno_tmp) Line 601 + 0x2c bytes C++ > msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C > msvcr100d.dll!_errno() Line 280 + 0x5 bytes C > msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 298 + 0x5 bytes C > msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 242 C > msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, ...) Line > 258 + 0x2c bytes C > msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ > msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int > nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line > 383 + 0x5 bytes C++ > msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int > nhFlag, int nBlockUse, const char * szFileName, int nLine, int * > errno_tmp) Line 239 + 0x22 bytes C++ > msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned > __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int > * errno_tmp) Line 601 + 0x2c bytes C++ > msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C > msvcr100d.dll!_errno() Line 280 + 0x5 bytes C > msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 298 + 0x5 bytes C > msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 242 C > msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, ...) Line > 258 + 0x2c bytes C > msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ > msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int > nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line > 383 + 0x5 bytes C++ > msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int > nhFlag, int nBlockUse, const char * szFileName, int nLine, int * > errno_tmp) Line 239 + 0x22 bytes C++ > msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned > __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int > * errno_tmp) Line 601 + 0x2c bytes C++ > msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C > msvcr100d.dll!_errno() Line 280 + 0x5 bytes C > msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 298 + 0x5 bytes C > msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 242 C > msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, ...) Line > 258 + 0x2c bytes C > msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ > msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int > nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line > 383 + 0x5 bytes C++ > msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int > nhFlag, int nBlockUse, const char * szFileName, int nLine, int * > errno_tmp) Line 239 + 0x22 bytes C++ > msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned > __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int > * errno_tmp) Line 601 + 0x2c bytes C++ > msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C > msvcr100d.dll!_errno() Line 280 + 0x5 bytes C > msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 298 + 0x5 bytes C > msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 242 C > msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, ...) Line > 258 + 0x2c bytes C > msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ > msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int > nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line > 383 + 0x5 bytes C++ > msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int > nhFlag, int nBlockUse, const char * szFileName, int nLine, int * > errno_tmp) Line 239 + 0x22 bytes C++ > msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned > __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int > * errno_tmp) Line 601 + 0x2c bytes C++ > msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C > msvcr100d.dll!_errno() Line 280 + 0x5 bytes C > msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 298 + 0x5 bytes C > msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 242 C > msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, ...) Line > 258 + 0x2c bytes C > msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ > msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int > nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line > 383 + 0x5 bytes C++ > msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int > nhFlag, int nBlockUse, const char * szFileName, int nLine, int * > errno_tmp) Line 239 + 0x22 bytes C++ > msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned > __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int > * errno_tmp) Line 601 + 0x2c bytes C++ > msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C > msvcr100d.dll!_errno() Line 280 + 0x5 bytes C > msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 298 + 0x5 bytes C > msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 242 C > msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, ...) Line > 258 + 0x2c bytes C > msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ > msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int > nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line > 383 + 0x5 bytes C++ > msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int > nhFlag, int nBlockUse, const char * szFileName, int nLine, int * > errno_tmp) Line 239 + 0x22 bytes C++ > msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned > __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int > * errno_tmp) Line 601 + 0x2c bytes C++ > msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C > msvcr100d.dll!_errno() Line 280 + 0x5 bytes C > msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 298 + 0x5 bytes C > msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 242 C > msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, ...) Line > 258 + 0x2c bytes C > msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ > msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int > nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line > 383 + 0x5 bytes C++ > msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int > nhFlag, int nBlockUse, const char * szFileName, int nLine, int * > errno_tmp) Line 239 + 0x22 bytes C++ > msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned > __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int > * errno_tmp) Line 601 + 0x2c bytes C++ > msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C > msvcr100d.dll!_errno() Line 280 + 0x5 bytes C > msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 298 + 0x5 bytes C > msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 242 C > msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, ...) Line > 258 + 0x2c bytes C > msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ > msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int > nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line > 383 + 0x5 bytes C++ > msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int > nhFlag, int nBlockUse, const char * szFileName, int nLine, int * > errno_tmp) Line 239 + 0x22 bytes C++ > msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned > __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int > * errno_tmp) Line 601 + 0x2c bytes C++ > msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C > msvcr100d.dll!_errno() Line 280 + 0x5 bytes C > msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 298 + 0x5 bytes C > msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 242 C > msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, ...) Line > 258 + 0x2c bytes C > msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ > msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int > nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line > 383 + 0x5 bytes C++ > msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int > nhFlag, int nBlockUse, const char * szFileName, int nLine, int * > errno_tmp) Line 239 + 0x22 bytes C++ > msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned > __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int > * errno_tmp) Line 601 + 0x2c bytes C++ > msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C > msvcr100d.dll!_errno() Line 280 + 0x5 bytes C > msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 298 + 0x5 bytes C > msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 242 C > msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, ...) Line > 258 + 0x2c bytes C > msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ > msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int > nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line > 383 + 0x5 bytes C++ > msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int > nhFlag, int nBlockUse, const char * szFileName, int nLine, int * > errno_tmp) Line 239 + 0x22 bytes C++ > msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned > __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int > * errno_tmp) Line 601 + 0x2c bytes C++ > msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C > msvcr100d.dll!_errno() Line 280 + 0x5 bytes C > msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 298 + 0x5 bytes C > msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 242 C > msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, ...) Line > 258 + 0x2c bytes C > msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ > msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int > nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line > 383 + 0x5 bytes C++ > msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int > nhFlag, int nBlockUse, const char * szFileName, int nLine, int * > errno_tmp) Line 239 + 0x22 bytes C++ > msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned > __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int > * errno_tmp) Line 601 + 0x2c bytes C++ > msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C > msvcr100d.dll!_errno() Line 280 + 0x5 bytes C > msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 298 + 0x5 bytes C > msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 242 C > msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, ...) Line > 258 + 0x2c bytes C > msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ > msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int > nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line > 383 + 0x5 bytes C++ > msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int > nhFlag, int nBlockUse, const char * szFileName, int nLine, int * > errno_tmp) Line 239 + 0x22 bytes C++ > msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned > __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int > * errno_tmp) Line 601 + 0x2c bytes C++ > msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C > msvcr100d.dll!_errno() Line 280 + 0x5 bytes C > msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 298 + 0x5 bytes C > msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, char * > arglist) Line 242 C > msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, > int nLine, const char * szModule, const char * szFormat, ...) Line > 258 + 0x2c bytes C > msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ > msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int > nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line > 383 + 0x5 bytes C++ > msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int > nhFlag, int nBlockUse, const char * szFileName, int nLine, int * > errno_tmp) Line 239 + 0x22 bytes C++ > msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned > __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int > * errno_tmp) Line 601 + 0x2c bytes C++ > msvcr100d.dll!_calloc_dbg(unsigned __int64 nNum, unsigned __int64 > nSize, int nBlockUse, const char * szFileName, int nLine) Line 652 + > 0x2b bytes C++ > msvcr100d.dll!__CRTDLL_INIT(void * hDllHandle, unsigned long > dwReason, void * lpreserved) Line 375 + 0x24 bytes C > msvcr100d.dll!_CRTDLL_INIT(void * hDllHandle, unsigned long > dwReason, void * lpreserved) Line 218 C > ntdll.dll!00007ff92eacc114() > [Frames below may be incorrect and/or missing, no symbols loaded > for ntdll.dll] > ntdll.dll!00007ff92eacbddb() > ntdll.dll!00007ff92eac8d7e() > ntdll.dll!00007ff92eac8c9e() > > On Mon, Jul 30, 2018 at 1:34 AM, Frediano Ziglio wrote: >> 2018-07-29 22:44 GMT+01:00 Igor Korot : >>> Hi, Frediano, >>> I just built the FreeTDS on Windows (8.1) with MSVC 2010. >>> The build went fine - no errors. >>> >>> Next I registered the ODBC driver with the regsvr32 utility. No >>> issues there. So far, so good. >>> >>> Next I opened ODBC Administrator utility (64-bit) from Windows. >>> Click "Add..." to add a User DSN and selected the FreeTDS driver. >>> >>> Here is where the problem began - after sometime the ODBC Administrator >>> window crashed. >>> >>> The library was compiled with the default settings. I generated an >>> appropriate solution opened up the solution "BUILD ALL" one >>> and did the whole build. >>> >>> The crash happened somewhere inside the Windows CRT according >>> to the backtrace. >>> >>> I can provide one on request. >>> >>> The version I'm using is 1.00.41. >>> >>> Is it something that is fixed in the later version or something new? >>> >>> Thank you. >> >> Looks like something new, never had any report/issue about this. >> >> Frediano >> _______________________________________________ >> FreeTDS mailing list >> FreeTDS at lists.ibiblio.org >> https://lists.ibiblio.org/mailman/listinfo/freetds > _______________________________________________ > FreeTDS mailing list > FreeTDS at lists.ibiblio.org > https://lists.ibiblio.org/mailman/listinfo/freetds From ikorot01 at gmail.com Tue Jul 31 08:52:44 2018 From: ikorot01 at gmail.com (Igor Korot) Date: Tue, 31 Jul 2018 07:52:44 -0500 Subject: [freetds] freeTDS on Windows In-Reply-To: References: Message-ID: Frediano, On Tue, Jul 31, 2018 at 1:43 AM, Frediano Ziglio wrote: > 2018-07-30 13:59 GMT+01:00 Igor Korot : >> Frediano, >> Below is the call stack at the time of the crash. >> Do you see anything wrong here? Are you able to reproduce it? >> When the "DSN Configuration" dialog shows up, let it sit for some time >> and then it will either >> crash on it own or you try to fill the DSN Name and move the mouse or >> do something else. >> >> Thank you. >> > > Looks like: > - you are using a debug version (which enable some memory checks); Yes, being a newbie on freeTDS, I'd like to use a debug version. > - some ODBC module has a memory issue (not necessarily FreeTDS); > - msvcr100d.dll has a recursive bug reporting the error. Do you think its better to use MSVC 2017? Thank you. > > I would use the release version and potentially report the bug to Microsoft. > > Frediano > > >> >>> msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, int nLine, const char * szModule, const char * szFormat, char * arglist) Line 252 + 0x1e bytes C >> msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 242 C >> msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, ...) Line >> 258 + 0x2c bytes C >> msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ >> msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int >> nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line >> 383 + 0x5 bytes C++ >> msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int >> nhFlag, int nBlockUse, const char * szFileName, int nLine, int * >> errno_tmp) Line 239 + 0x22 bytes C++ >> msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned >> __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int >> * errno_tmp) Line 601 + 0x2c bytes C++ >> msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C >> msvcr100d.dll!_errno() Line 280 + 0x5 bytes C >> msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 298 + 0x5 bytes C >> msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 242 C >> msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, ...) Line >> 258 + 0x2c bytes C >> msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ >> msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int >> nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line >> 383 + 0x5 bytes C++ >> msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int >> nhFlag, int nBlockUse, const char * szFileName, int nLine, int * >> errno_tmp) Line 239 + 0x22 bytes C++ >> msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned >> __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int >> * errno_tmp) Line 601 + 0x2c bytes C++ >> msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C >> msvcr100d.dll!_errno() Line 280 + 0x5 bytes C >> msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 298 + 0x5 bytes C >> msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 242 C >> msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, ...) Line >> 258 + 0x2c bytes C >> msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ >> msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int >> nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line >> 383 + 0x5 bytes C++ >> msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int >> nhFlag, int nBlockUse, const char * szFileName, int nLine, int * >> errno_tmp) Line 239 + 0x22 bytes C++ >> msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned >> __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int >> * errno_tmp) Line 601 + 0x2c bytes C++ >> msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C >> msvcr100d.dll!_errno() Line 280 + 0x5 bytes C >> msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 298 + 0x5 bytes C >> msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 242 C >> msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, ...) Line >> 258 + 0x2c bytes C >> msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ >> msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int >> nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line >> 383 + 0x5 bytes C++ >> msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int >> nhFlag, int nBlockUse, const char * szFileName, int nLine, int * >> errno_tmp) Line 239 + 0x22 bytes C++ >> msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned >> __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int >> * errno_tmp) Line 601 + 0x2c bytes C++ >> msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C >> msvcr100d.dll!_errno() Line 280 + 0x5 bytes C >> msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 298 + 0x5 bytes C >> msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 242 C >> msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, ...) Line >> 258 + 0x2c bytes C >> msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ >> msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int >> nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line >> 383 + 0x5 bytes C++ >> msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int >> nhFlag, int nBlockUse, const char * szFileName, int nLine, int * >> errno_tmp) Line 239 + 0x22 bytes C++ >> msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned >> __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int >> * errno_tmp) Line 601 + 0x2c bytes C++ >> msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C >> msvcr100d.dll!_errno() Line 280 + 0x5 bytes C >> msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 298 + 0x5 bytes C >> msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 242 C >> msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, ...) Line >> 258 + 0x2c bytes C >> msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ >> msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int >> nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line >> 383 + 0x5 bytes C++ >> msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int >> nhFlag, int nBlockUse, const char * szFileName, int nLine, int * >> errno_tmp) Line 239 + 0x22 bytes C++ >> msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned >> __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int >> * errno_tmp) Line 601 + 0x2c bytes C++ >> msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C >> msvcr100d.dll!_errno() Line 280 + 0x5 bytes C >> msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 298 + 0x5 bytes C >> msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 242 C >> msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, ...) Line >> 258 + 0x2c bytes C >> msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ >> msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int >> nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line >> 383 + 0x5 bytes C++ >> msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int >> nhFlag, int nBlockUse, const char * szFileName, int nLine, int * >> errno_tmp) Line 239 + 0x22 bytes C++ >> msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned >> __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int >> * errno_tmp) Line 601 + 0x2c bytes C++ >> msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C >> msvcr100d.dll!_errno() Line 280 + 0x5 bytes C >> msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 298 + 0x5 bytes C >> msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 242 C >> msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, ...) Line >> 258 + 0x2c bytes C >> msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ >> msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int >> nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line >> 383 + 0x5 bytes C++ >> msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int >> nhFlag, int nBlockUse, const char * szFileName, int nLine, int * >> errno_tmp) Line 239 + 0x22 bytes C++ >> msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned >> __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int >> * errno_tmp) Line 601 + 0x2c bytes C++ >> msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C >> msvcr100d.dll!_errno() Line 280 + 0x5 bytes C >> msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 298 + 0x5 bytes C >> msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 242 C >> msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, ...) Line >> 258 + 0x2c bytes C >> msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ >> msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int >> nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line >> 383 + 0x5 bytes C++ >> msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int >> nhFlag, int nBlockUse, const char * szFileName, int nLine, int * >> errno_tmp) Line 239 + 0x22 bytes C++ >> msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned >> __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int >> * errno_tmp) Line 601 + 0x2c bytes C++ >> msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C >> msvcr100d.dll!_errno() Line 280 + 0x5 bytes C >> msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 298 + 0x5 bytes C >> msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 242 C >> msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, ...) Line >> 258 + 0x2c bytes C >> msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ >> msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int >> nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line >> 383 + 0x5 bytes C++ >> msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int >> nhFlag, int nBlockUse, const char * szFileName, int nLine, int * >> errno_tmp) Line 239 + 0x22 bytes C++ >> msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned >> __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int >> * errno_tmp) Line 601 + 0x2c bytes C++ >> msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C >> msvcr100d.dll!_errno() Line 280 + 0x5 bytes C >> msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 298 + 0x5 bytes C >> msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 242 C >> msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, ...) Line >> 258 + 0x2c bytes C >> msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ >> msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int >> nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line >> 383 + 0x5 bytes C++ >> msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int >> nhFlag, int nBlockUse, const char * szFileName, int nLine, int * >> errno_tmp) Line 239 + 0x22 bytes C++ >> msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned >> __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int >> * errno_tmp) Line 601 + 0x2c bytes C++ >> msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C >> msvcr100d.dll!_errno() Line 280 + 0x5 bytes C >> msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 298 + 0x5 bytes C >> msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 242 C >> msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, ...) Line >> 258 + 0x2c bytes C >> msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ >> msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int >> nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line >> 383 + 0x5 bytes C++ >> msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int >> nhFlag, int nBlockUse, const char * szFileName, int nLine, int * >> errno_tmp) Line 239 + 0x22 bytes C++ >> msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned >> __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int >> * errno_tmp) Line 601 + 0x2c bytes C++ >> msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C >> msvcr100d.dll!_errno() Line 280 + 0x5 bytes C >> msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 298 + 0x5 bytes C >> msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 242 C >> msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, ...) Line >> 258 + 0x2c bytes C >> msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ >> msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int >> nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line >> 383 + 0x5 bytes C++ >> msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int >> nhFlag, int nBlockUse, const char * szFileName, int nLine, int * >> errno_tmp) Line 239 + 0x22 bytes C++ >> msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned >> __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int >> * errno_tmp) Line 601 + 0x2c bytes C++ >> msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C >> msvcr100d.dll!_errno() Line 280 + 0x5 bytes C >> msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 298 + 0x5 bytes C >> msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 242 C >> msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, ...) Line >> 258 + 0x2c bytes C >> msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ >> msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int >> nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line >> 383 + 0x5 bytes C++ >> msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int >> nhFlag, int nBlockUse, const char * szFileName, int nLine, int * >> errno_tmp) Line 239 + 0x22 bytes C++ >> msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned >> __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int >> * errno_tmp) Line 601 + 0x2c bytes C++ >> msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C >> msvcr100d.dll!_errno() Line 280 + 0x5 bytes C >> msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 298 + 0x5 bytes C >> msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 242 C >> msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, ...) Line >> 258 + 0x2c bytes C >> msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ >> msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int >> nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line >> 383 + 0x5 bytes C++ >> msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int >> nhFlag, int nBlockUse, const char * szFileName, int nLine, int * >> errno_tmp) Line 239 + 0x22 bytes C++ >> msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned >> __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int >> * errno_tmp) Line 601 + 0x2c bytes C++ >> msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C >> msvcr100d.dll!_errno() Line 280 + 0x5 bytes C >> msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 298 + 0x5 bytes C >> msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 242 C >> msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, ...) Line >> 258 + 0x2c bytes C >> msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ >> msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int >> nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line >> 383 + 0x5 bytes C++ >> msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int >> nhFlag, int nBlockUse, const char * szFileName, int nLine, int * >> errno_tmp) Line 239 + 0x22 bytes C++ >> msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned >> __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int >> * errno_tmp) Line 601 + 0x2c bytes C++ >> msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C >> msvcr100d.dll!_errno() Line 280 + 0x5 bytes C >> msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 298 + 0x5 bytes C >> msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 242 C >> msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, ...) Line >> 258 + 0x2c bytes C >> msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ >> msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int >> nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line >> 383 + 0x5 bytes C++ >> msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int >> nhFlag, int nBlockUse, const char * szFileName, int nLine, int * >> errno_tmp) Line 239 + 0x22 bytes C++ >> msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned >> __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int >> * errno_tmp) Line 601 + 0x2c bytes C++ >> msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C >> msvcr100d.dll!_errno() Line 280 + 0x5 bytes C >> msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 298 + 0x5 bytes C >> msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 242 C >> msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, ...) Line >> 258 + 0x2c bytes C >> msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ >> msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int >> nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line >> 383 + 0x5 bytes C++ >> msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int >> nhFlag, int nBlockUse, const char * szFileName, int nLine, int * >> errno_tmp) Line 239 + 0x22 bytes C++ >> msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned >> __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int >> * errno_tmp) Line 601 + 0x2c bytes C++ >> msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C >> msvcr100d.dll!_errno() Line 280 + 0x5 bytes C >> msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 298 + 0x5 bytes C >> msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 242 C >> msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, ...) Line >> 258 + 0x2c bytes C >> msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ >> msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int >> nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line >> 383 + 0x5 bytes C++ >> msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int >> nhFlag, int nBlockUse, const char * szFileName, int nLine, int * >> errno_tmp) Line 239 + 0x22 bytes C++ >> msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned >> __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int >> * errno_tmp) Line 601 + 0x2c bytes C++ >> msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C >> msvcr100d.dll!_errno() Line 280 + 0x5 bytes C >> msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 298 + 0x5 bytes C >> msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 242 C >> msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, ...) Line >> 258 + 0x2c bytes C >> msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ >> msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int >> nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line >> 383 + 0x5 bytes C++ >> msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int >> nhFlag, int nBlockUse, const char * szFileName, int nLine, int * >> errno_tmp) Line 239 + 0x22 bytes C++ >> msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned >> __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int >> * errno_tmp) Line 601 + 0x2c bytes C++ >> msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C >> msvcr100d.dll!_errno() Line 280 + 0x5 bytes C >> msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 298 + 0x5 bytes C >> msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 242 C >> msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, ...) Line >> 258 + 0x2c bytes C >> msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ >> msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int >> nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line >> 383 + 0x5 bytes C++ >> msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int >> nhFlag, int nBlockUse, const char * szFileName, int nLine, int * >> errno_tmp) Line 239 + 0x22 bytes C++ >> msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned >> __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int >> * errno_tmp) Line 601 + 0x2c bytes C++ >> msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C >> msvcr100d.dll!_errno() Line 280 + 0x5 bytes C >> msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 298 + 0x5 bytes C >> msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 242 C >> msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, ...) Line >> 258 + 0x2c bytes C >> msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ >> msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int >> nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line >> 383 + 0x5 bytes C++ >> msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int >> nhFlag, int nBlockUse, const char * szFileName, int nLine, int * >> errno_tmp) Line 239 + 0x22 bytes C++ >> msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned >> __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int >> * errno_tmp) Line 601 + 0x2c bytes C++ >> msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C >> msvcr100d.dll!_errno() Line 280 + 0x5 bytes C >> msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 298 + 0x5 bytes C >> msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 242 C >> msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, ...) Line >> 258 + 0x2c bytes C >> msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ >> msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int >> nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line >> 383 + 0x5 bytes C++ >> msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int >> nhFlag, int nBlockUse, const char * szFileName, int nLine, int * >> errno_tmp) Line 239 + 0x22 bytes C++ >> msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned >> __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int >> * errno_tmp) Line 601 + 0x2c bytes C++ >> msvcr100d.dll!_getptd_noexit() Line 470 + 0x2d bytes C >> msvcr100d.dll!_errno() Line 280 + 0x5 bytes C >> msvcr100d.dll!_VCrtDbgReportA(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 298 + 0x5 bytes C >> msvcr100d.dll!_CrtDbgReportV(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, char * >> arglist) Line 242 C >> msvcr100d.dll!_CrtDbgReport(int nRptType, const char * szFile, >> int nLine, const char * szModule, const char * szFormat, ...) Line >> 258 + 0x2c bytes C >> msvcr100d.dll!_CrtCheckMemory() Line 1817 + 0x3f bytes C++ >> msvcr100d.dll!_heap_alloc_dbg_impl(unsigned __int64 nSize, int >> nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line >> 383 + 0x5 bytes C++ >> msvcr100d.dll!_nh_malloc_dbg_impl(unsigned __int64 nSize, int >> nhFlag, int nBlockUse, const char * szFileName, int nLine, int * >> errno_tmp) Line 239 + 0x22 bytes C++ >> msvcr100d.dll!_calloc_dbg_impl(unsigned __int64 nNum, unsigned >> __int64 nSize, int nBlockUse, const char * szFileName, int nLine, int >> * errno_tmp) Line 601 + 0x2c bytes C++ >> msvcr100d.dll!_calloc_dbg(unsigned __int64 nNum, unsigned __int64 >> nSize, int nBlockUse, const char * szFileName, int nLine) Line 652 + >> 0x2b bytes C++ >> msvcr100d.dll!__CRTDLL_INIT(void * hDllHandle, unsigned long >> dwReason, void * lpreserved) Line 375 + 0x24 bytes C >> msvcr100d.dll!_CRTDLL_INIT(void * hDllHandle, unsigned long >> dwReason, void * lpreserved) Line 218 C >> ntdll.dll!00007ff92eacc114() >> [Frames below may be incorrect and/or missing, no symbols loaded >> for ntdll.dll] >> ntdll.dll!00007ff92eacbddb() >> ntdll.dll!00007ff92eac8d7e() >> ntdll.dll!00007ff92eac8c9e() >> >> On Mon, Jul 30, 2018 at 1:34 AM, Frediano Ziglio wrote: >>> 2018-07-29 22:44 GMT+01:00 Igor Korot : >>>> Hi, Frediano, >>>> I just built the FreeTDS on Windows (8.1) with MSVC 2010. >>>> The build went fine - no errors. >>>> >>>> Next I registered the ODBC driver with the regsvr32 utility. No >>>> issues there. So far, so good. >>>> >>>> Next I opened ODBC Administrator utility (64-bit) from Windows. >>>> Click "Add..." to add a User DSN and selected the FreeTDS driver. >>>> >>>> Here is where the problem began - after sometime the ODBC Administrator >>>> window crashed. >>>> >>>> The library was compiled with the default settings. I generated an >>>> appropriate solution opened up the solution "BUILD ALL" one >>>> and did the whole build. >>>> >>>> The crash happened somewhere inside the Windows CRT according >>>> to the backtrace. >>>> >>>> I can provide one on request. >>>> >>>> The version I'm using is 1.00.41. >>>> >>>> Is it something that is fixed in the later version or something new? >>>> >>>> Thank you. >>> >>> Looks like something new, never had any report/issue about this. >>> >>> Frediano >>> _______________________________________________ >>> FreeTDS mailing list >>> FreeTDS at lists.ibiblio.org >>> https://lists.ibiblio.org/mailman/listinfo/freetds >> _______________________________________________ >> FreeTDS mailing list >> FreeTDS at lists.ibiblio.org >> https://lists.ibiblio.org/mailman/listinfo/freetds > _______________________________________________ > FreeTDS mailing list > FreeTDS at lists.ibiblio.org > https://lists.ibiblio.org/mailman/listinfo/freetds From benjamin.moody at gmail.com Thu Aug 2 15:45:42 2018 From: benjamin.moody at gmail.com (Benjamin Moody) Date: Thu, 2 Aug 2018 19:45:42 +0000 Subject: [freetds] Securely specifying passwords for freebcp and such Message-ID: There's a useful feature which is not mentioned in the FreeTDS man pages: for several of the command-line tools, if you specify the option '-P -', the password will be read from standard input. This is the case for tsql, freebcp, defncopy, and bsqldb. The feature isn't all that useful for tsql, but for the other tools, it may be a helpful option for batch processing. Indeed, at least for freebcp, it appears to be the only secure way to supply a password (on a system where program command lines are visible to everyone via /proc/.) (For example, in a shell script: freebcp [...] -U "$user" -P "$pass" typically allows other users to see the password using 'ps', but freebcp [...] -U "$user" -P - < Hello, the FreeTDS User Guide says in the chapter "Choosing a TDS protocol version" that "Sybase System SQL Anywhere" is talking TDS "5.0 only". Does that mean that connecting to SQL Anywhere with FreeTDS is (officially) supported? Or is that just to be seen as a side note and there is no support for this? Best regards, Jan From freddy77 at gmail.com Fri Aug 10 01:43:47 2018 From: freddy77 at gmail.com (Frediano Ziglio) Date: Fri, 10 Aug 2018 06:43:47 +0100 Subject: [freetds] FreeTDS +SQL Anywhere? In-Reply-To: References: Message-ID: 2018-07-30 14:30 GMT+01:00 Marsupilami79 : > Hello, > > the FreeTDS User Guide says in the chapter "Choosing a TDS protocol > version" that "Sybase System SQL Anywhere" is talking TDS "5.0 only". > Does that mean that connecting to SQL Anywhere with FreeTDS is > (officially) supported? Or is that just to be seen as a side note and > there is no support for this? > > Best regards, > > Jan No, just means that you have to use protocol version 5.0 which is supported. Maybe is confusing at compared to 7.3 seems old but no, is mainly a numbering thing. Frediano From freddy77 at gmail.com Sat Aug 11 02:58:04 2018 From: freddy77 at gmail.com (Frediano Ziglio) Date: Sat, 11 Aug 2018 07:58:04 +0100 Subject: [freetds] Securely specifying passwords for freebcp and such In-Reply-To: References: Message-ID: 2018-08-02 20:45 GMT+01:00 Benjamin Moody : > There's a useful feature which is not mentioned in the FreeTDS man > pages: for several of the command-line tools, if you specify the > option '-P -', the password will be read from standard input. This is > the case for tsql, freebcp, defncopy, and bsqldb. > > The feature isn't all that useful for tsql, but for the other tools, > it may be a helpful option for batch processing. Indeed, at least for > freebcp, it appears to be the only secure way to supply a password > (on a system where program command lines are visible to everyone via > /proc/.) > > (For example, in a shell script: > > freebcp [...] -U "$user" -P "$pass" > > typically allows other users to see the password using 'ps', but > > freebcp [...] -U "$user" -P - < $pass > EOF > > doesn't.) > > So, this feature should probably be documented. Any suggestion on the text to write? Is not hard to change the files but even suggestions are welcome. Frediano From freddy77 at gmail.com Sat Aug 11 03:07:51 2018 From: freddy77 at gmail.com (Frediano Ziglio) Date: Sat, 11 Aug 2018 08:07:51 +0100 Subject: [freetds] Pending patches Message-ID: Hi Aaron, I'm starting to get confused on what was merged and what not. Can you rebase and send an updated pull request? Would be really helpful. Regards, Frediano From freddy77 at gmail.com Sat Aug 11 07:58:33 2018 From: freddy77 at gmail.com (Frediano Ziglio) Date: Sat, 11 Aug 2018 12:58:33 +0100 Subject: [freetds] Windows build/install In-Reply-To: References: Message-ID: 2018-07-28 22:37 GMT+01:00 Igor Korot : > Hi, > I just built freeTDS on Windows (8.1) laptop with MSVC 2010. > Following the User Guide I ran "regsvr32 tdsodbc.dll" from the built > directory. > Next I ran the ODBC Administrator program, but the driver is nowhere > to be found. > > What am I missing? > > Thank you. > Hi, I suppose this was replied in "freeTDS on Windows" thread. Frediano From ucko at ncbi.nlm.nih.gov Wed Aug 22 11:40:29 2018 From: ucko at ncbi.nlm.nih.gov (Ucko, Aaron (NIH/NLM/NCBI) [E]) Date: Wed, 22 Aug 2018 15:40:29 +0000 Subject: [freetds] Pending patches In-Reply-To: References: Message-ID: Yes, I plan to when I get a chance, but have been busy (and intermittently out of the office) lately. Meanwhile, thanks again for the merges you've already done! -- Aaron Ucko , NCBI C++ Toolkit core development group -----Original Message----- From: Frediano Ziglio Sent: Saturday, August 11, 2018 03:08 To: Ucko, Aaron (NIH/NLM/NCBI) [E] ; FreeTDS Development Group Subject: Pending patches Hi Aaron, I'm starting to get confused on what was merged and what not. Can you rebase and send an updated pull request? Would be really helpful. Regards, Frediano From no-reply at appveyor.com Mon Aug 27 11:21:05 2018 From: no-reply at appveyor.com (AppVeyor) Date: Mon, 27 Aug 2018 15:21:05 +0000 Subject: [freetds] Build failed: freetds 1124 Message-ID: <20180827152105.1.E79A265C037CABAC@appveyor.com> From no-reply at appveyor.com Mon Aug 27 13:10:08 2018 From: no-reply at appveyor.com (AppVeyor) Date: Mon, 27 Aug 2018 17:10:08 +0000 Subject: [freetds] Build completed: freetds 1125 Message-ID: <20180827171008.1.8ACD884ECF8BB75B@appveyor.com> From freddy77 at gmail.com Tue Sep 11 16:42:45 2018 From: freddy77 at gmail.com (Frediano Ziglio) Date: Tue, 11 Sep 2018 22:42:45 +0200 Subject: [freetds] SQLExecDirect() + SQLDataParam() + SQLPutData() fails In-Reply-To: References: <468b6021-9fb9-2738-ae70-1618b035490c@4js.com> Message-ID: Il giorno sab 30 giu 2018 alle ore 13:07 Sebastien FLAESCH ha scritto: > > Attached, the code example to reproduce: > > When using SQLPrepare() + SQLExecute(): > > $ gcc -D USE_PREP_EXEC -o odbctest3.bin odbctest3.c ... > > $ ./odbctest3.bin > >> prepare insert... > >> bind ... > >> execute... > >> param data... > >>>>> put varchar(max) > >> param data... > > > When using SQLExecDirect(): > > $ gcc -o odbctest3.bin odbctest3.c ... > > $ ./odbctest3.bin > >> bind ... > >> exec direct... > >> param data... > >>>>> put varchar(max) > Error -1 at: SQLPutData 1 > Diagnostic info: > SQL State: HY010 > SQL code : 0 > Message : [FreeTDS][SQL Server]Function sequence error > > > What is wrong in my ODBC function sequence? > > Cheers, > Seb > > > On 06/29/2018 03:09 PM, Sebastien FLAESCH wrote: > > Hi all, > > > > Just asking before sending a little code sample to reproduce: > > > > Is there a know limitation regarding VARCHAR(MAX)/VARBINARY(MAX) parameters > > and SQLExecDirect() + SQLParamData() + SQLPutData() ? > > > > When using SQLPrepare() + SQLExecute() + SQLParamData() + SQLPutData(), I can > > send Large Objects, but with SQLExecDirect(), I get the error: > > > > [FreeTDS][SQL Server]Function sequence error > > > > When doing the first SQLPutData() ... > > > > Seb Sorry for the delay, very easy to fix. Fixed in Branch-1_00 and master. I'll integrate the test. Frediano From no-reply at appveyor.com Thu Sep 13 15:46:35 2018 From: no-reply at appveyor.com (AppVeyor) Date: Thu, 13 Sep 2018 19:46:35 +0000 Subject: [freetds] Build failed: freetds 1138 Message-ID: <20180913194635.1.642AEAA3D9E03474@appveyor.com> From no-reply at appveyor.com Fri Sep 14 03:09:11 2018 From: no-reply at appveyor.com (AppVeyor) Date: Fri, 14 Sep 2018 07:09:11 +0000 Subject: [freetds] Build completed: freetds 1139 Message-ID: <20180914070911.1.6D3CA2D80DE0A6E2@appveyor.com>