Crash when trying to read a table on SQL Server

tonymarston's profile image tonymarston posted 6 years ago in General Permalink

I had logged onto my SQL Server database, selected a table, then hit the "data" tab to se its contents when it just crashed. Attached is the dump.

1 attachment(s):
nickles's profile image nickles posted 5 years ago Permalink

Same issue here. The table contains GUID columns. Tried to reduce the columns, rows, and result is below (bugreport, table CREATE and data (one row!) in attachments.

This bug has been nagging me since about 9.4. Right now I have to resort to SQL Server Management Studio which is quite a nuisance...

I'd really appreciate if you could look into this.

2 attachment(s):
ansgar's profile image ansgar posted 5 years ago Permalink

@tonymarston: please update to HeidiSQL 10.1, you are running an old version.

@nickles: your issue is different. Probably that's issue #496. You could have a look there and compare the reproduction recipe.

nickles's profile image nickles posted 5 years ago Permalink

@ansgar

Don‘t see any fix in #496. It‘s very certainly related to one of the column types - but how would I remedy that? I cannot change any of these... Please consider looking into the the data I sent in; you should be able to reproduce the error.

tonymarston's profile image tonymarston posted 5 years ago Permalink

I am running version 10.1.0.5479 and still hitting the same error. See attached bug report.

1 attachment(s):
nickles's profile image nickles posted 5 years ago Permalink

Status: Still throwing in 10.1.0.5481.

nickles's profile image nickles posted 5 years ago Permalink

Status: Still throwing in 10.1.0.5508.

nickles's profile image nickles posted 5 years ago Permalink

Status: Still throwing in 10.1.0.5545.

tonymarston's profile image tonymarston posted 5 years ago Permalink

What do you mean by 'part'? The column is defined as decimal(38,0), so what is missing?

tonymarston's profile image tonymarston posted 5 years ago Permalink

What has a fault with an Epson printer got to do with this issue?

ansgar's profile image ansgar posted 5 years ago Permalink

This was spam. I'm going to delete merry007.

tonymarston's profile image tonymarston posted 5 years ago Permalink

Status: Still throwing in 10.2.0.5610.

ansgar's profile image ansgar posted 5 years ago Permalink

The crash report looks like in issue #423. I just set that to the roadmap for the next release. You could star that issue and probably check when I committed a solution.

nickles's profile image nickles posted 5 years ago Permalink

The error is gone (using 10.2.0.5700). Thanks!

tonymarston's profile image tonymarston posted 5 years ago Permalink

It has not gone for me. Here is some test data:

CREATE TABLE "party_identification" (
    "party_id" DECIMAL(38,0) NOT NULL,
    "identity_type_id" NVARCHAR(16) NOT NULL,
    "id_value" NVARCHAR(32) NOT NULL,
    PRIMARY KEY ("party_id", "identity_type_id")
);
INSERT INTO party_identification (party_id, identity_type_id, id_value) 
VALUES (10101000000000000000000000000030, 'ALTERNATIVE', 'foobar');
ansgar's profile image ansgar posted 5 years ago Permalink

tonymarston please update to the latest build and try again. I suspect that's what nickles also did.

tonymarston's profile image tonymarston posted 5 years ago Permalink

I am running version 10.2.0.5700

ansgar's profile image ansgar posted 5 years ago Permalink

Ok, that's fine. Could you please also tell the exact error message, or attach the bug report you get with that build.

tonymarston's profile image tonymarston posted 5 years ago Permalink

When it crashed today I used the dialog to send you the crash report automatically.

ansgar's profile image ansgar posted 5 years ago Permalink

Ok, then issue #423 still seems not solved. Relevant part of your bugreport is as follows:

exception class    : EOleException
exception message  : Multiple-step operation generated errors. Check each status value.

main thread ($4b04):
00aa4222 heidisql.exe Data.Win.ADODB            TCustomADODataSet.GetFieldData
00a52da0 heidisql.exe Data.DB                   TField.GetData
00a5de32 heidisql.exe Data.DB                   TFMTBCDField.GetValue
00a5db80 heidisql.exe Data.DB                   TFMTBCDField.GetAsString
00a52879 heidisql.exe Data.DB                   TField.GetAsAnsiString
00b0119d heidisql.exe dbconnection    6276  +18 TAdoDBQuery.Col
00dd4e36 heidisql.exe Main            9130  +31 TMainForm.AnyGridGetText

But you could be so nice and try the new MSOLEDBSQL option in HeidiSQL's session manager's "Library" dropdown, to see if that makes a difference.

ansgar's profile image ansgar posted 5 years ago Permalink

@tonymarston did you try with a different "Library" setting?

tonymarston's profile image tonymarston posted 5 years ago Permalink

I use SQLOLEDB, but this generates the message "Security Issue: Using SQLOLEDB ADO provider with insecure TLS 1.0. You should install Microsoft OLE DB Driver from https://www.microsoft.com/en-us/download/confirmation.aspx?id=56730" I have installed this, but the message still appears.

I have tried MSOLEDBSQL, but this generates a "Login timeout expired" message.

ansgar's profile image ansgar posted 5 years ago Permalink

The first one is just a warning. With that SQLOLEDB, do you still get the above multiple-step error?

tonymarston's profile image tonymarston posted 5 years ago Permalink

Yes. Every time.

ansgar's profile image ansgar posted 5 years ago Permalink

And you are surely using the latest build of HeidiSQL?

ansgar's profile image ansgar posted 5 years ago Permalink

You could also post a bugreport text file here, from the crash window, using the latest build.

tonymarston's profile image tonymarston posted 5 years ago Permalink

I am using version 10.2.0.5707. A bug report is attached.

1 attachment(s):
ansgar's profile image ansgar posted 5 years ago Permalink

Problem seems to be large numbers. HeidiSQL uses the ADO method .AsExtended to retrieve values from MS SQL float fields, which has a maximum of 15 digits. Yours has 30 or more, which then crashes. Even .AsString crashes here, which makes no sense to me.

tonymarston's profile image tonymarston posted 5 years ago Permalink

This is not a float field, it is decimal. 38 digits is supported in both MySQL and SQL Server, so the software should not crash. Note that in my PHP application I have to use the GMP extension to manipulate such large numbers.

ansgar's profile image ansgar posted 5 years ago Permalink

Yes, these should be supported by HeidiSQL in MS SQL as well.

Let's post further stuff in issue #423 .

Please login to leave a reply, or register at first.