Code: Select all
INSERT INTO large_shape (id, shape)
VALUES (:id, geography::STGeomFromWKB(:shape, 4236))
Code: Select all
Query := TMSQuery.Create(nil);
try
Query.Connection := cntMain;
Query.Options.DescribeParams := True;
Query.SQL.Text := 'INSERT INTO large_shape (id, shape) ' +
'VALUES (:id, geography::STGeomFromWKB(:shape, 4236))';
try
Query.ParamByName('id').Value := GetNextId();
Query.ParamByName('shape').Value := ConvertToArray(WKB_LARGE);
Query.ExecSQL();
except
end;
finally
FreeAndNil(Query);
end;
If however I prepare the Query:
Code: Select all
Query := TMSQuery.Create(nil);
try
Query.Connection := cntMain;
Query.Options.DescribeParams := True;
Query.SQL.Text := 'INSERT INTO large_shape (id, shape) ' +
'VALUES (:id, geography::STGeomFromWKB(:shape, 4236))';
Query.Prepare();
try
Query.ParamByName('id').Value := GetNextId();
Query.ParamByName('shape').Value := ConvertToArray(WKB_LARGE);
Query.ExecSQL();
except
end;
finally
FreeAndNil(Query);
end;
Error occurred: The statement has been terminated.
A .NET Framework error occurred during execution of user-defined routine or aggregate "geography":
System.FormatException: 24209: Unexpected end of input. Check that the input data is complete and has not been truncated.
System.FormatException:
at Microsoft.SqlServer.Types.WellKnownBinaryReader.ReadBytes(Int32 n, ByteOrder byteOrder)
at Microsoft.SqlServer.Types.WellKnownBinaryReader.ReadNextPoint(ByteOrder byteOrder, Boolean readZ, Boolean readM)
at Microsoft.SqlServer.Types.WellKnownBinaryReader.ReadLineStringPoints(ByteOrder byteOrder, UInt32 cPoints, Boolean readZ, Boolean readM)
at Microsoft.SqlServer.Types.WellKnownBinaryReader.ParseWkbLineStringWithoutHeader(ByteOrder byteOrder, Boolean readZ, Boolean readM)
at Microsoft.SqlServer.Types.WellKnownBinaryReader.ParseWkb(OpenGisType type)
at Microsoft.SqlServer.Types.WellKnownBinaryReader.Read(OpenGisType type, Int32 srid)
at Microsoft.SqlServer.Types.SqlGeography.GeographyFromBinary(OpenGisType type, SqlBytes wkbGeography, Int32 srid)
.
Parameter[1] :shape - data truncated (Status = 4h).
How do I fix this?