提供7*24专业Sybase数据库远程及现场技术支持,Sybase ASE及Sybase SQL Anywhere数据库修复服务,
请联系电话: (微信),QQ: 289965371!
We supply technical support for Sybase ASE and Sybase SQL Anywhere, also have many years of experience in recovering data from damanged Sybase devices.
Please contact us:
Phone:
Wechat: 13811580958
QQ: 289965371 联系我们获取数据库技术支持!
Email: 289965371@qq.com
扫描下方微信,联系我们:
扫描雨翰数据恢复官方微信获取专业数据库恢复服务

 

随着Sybase被完全整合到SAP下,Sybase原来的支持网站被SAP Support Portal取代。
只有购买了SAP服务的用户才能使用账号登录SAP Support Portal进行介质下载、补丁升级、报Incident等。
考虑到Sybase数据库的初学者或者没有购买原厂服务的Sybase客户情况,现提供SAP ASE/IQ/RS/SDK/SQL Anywhere/PB等产品的BUG信息。
在SAP Support Portal网站或者google上搜索Targeted CR List for ASE,可以看到针对不同版本的CR(CR表示Change Request)简单描述信息列表。
需要注意的是:Targeted CR List for ASE列出的CR虽然绝大多数是BUG,但有一些是更改需求。
以下提供SAP ASE/IQ/RS/SDK/SQL Anywhere/PB等产品的BUG信息!

如有问题,请联系我!

QQ :289965371 联系我们获取数据库技术支持!
Email:
不仅仅包括BUG的详细描述信息,还包括首次报告BUG的平台、数据库版本以及BUG修复历史过程;有些BUG还提供了Workaround来临时解决该BUG带来问题。

 

CR:681621
CR Number:   681621
Product Name:   MobiLink
Product Component:   Relay Server
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3420 16 Aug 2011 Fixed
Description
In a Relay Server farm environment, likely with non-sticky loadbalancer, it was possible for the Outbound Enabler to leak memory in the rare case of failing to locate the proper channel where the client request originally came from. This has now been fixed.



CR:681739
CR Number:   681739
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   10.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3507 22 Nov 2011 Fixed
Description
In extremely rare situations, the primary server in a mirroring system could have become deadlocked while attempting to send log pages to the mirror partner. For the problem to have occurred, all request tasks on the primary server must have been blocked and the connection from the primary to the mirror must have been severed while the log pages were being sent to the mirror. This problem has been fixed.



CR:681743
CR Number:   681743
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   10.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
16.0.0 1980 13 Jan 2014 Fixed
12.0.1 4139 15 Jul 2014 Fixed
Description
In rare, timing dependent cases a server which was a copy node and its parent could both have hung for several minutes and then the parent report the following message in the console "Mirroring request timed out: dropping mirroring connection" and both server continue normally. If this did occur, after the message was logged, the copy node would have reconnected and both servers continue normally. In order for this situation to occur, there needed to be requests from the copy node server to the parent server (such as mirroring requests for another database or remote data access requests).



This has been fixed so that servers that have less than about 20 committed transactions per second will no longer hang. There may also be slightly improved performance when using copy nodes.



CR:681749
CR Number:   681749
Product Name:   SQL Anywhere
Product Component:   Other
Status:   Closed
OS:   Linux
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
07 Sep 2011 Fixed
Description
Support has been added to the SQL Anywhere Perl DBI driver which permits access to multiple result sets. The more_results() method which is not part of the standard default DBI template has been added as an extension.



For example:

$sth = $dbh->prepare("BEGIN SELECT * FROM Departments ORDER BY DepartmentID;SELECT TOP 10 * FROM SalesOrders ORDER BY ID;END");

$sth->execute();



do {

while (my $data = $sth->fetch) {

print "@$data\n";

}

print "---end of data---\n";

} while (defined $sth->more_results());



CR:681755
CR Number:   681755
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   10.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3424 24 Aug 2011 Fixed
11.0.1 2662 24 Aug 2011 Fixed
Description
In a high availability setup, if both partners accessed the arbiter at the same time, the arbiter could have crashed or behaved incorrectly. This has been fixed.



CR:681758
CR Number:   681758
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   12.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3431 30 Aug 2011 Fixed
Description
In a mirroring setup, copy node server console messages often said "mirror" or "partner", causing confusion about the actual role of the server and which server was its parent server. This has ben corrected so that the server console messages for a copy node will now refer to the copy node itself as "copy node", and its parent as "parent".



CR:681759
CR Number:   681759
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   12.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3475 14 Oct 2011 Fixed
Description
The database property 'PartnerState', as returned by db_property, would have returned inaccurate results for databases that had no mirroring definitions, but were running with mirroring enabled. This has been fixed. Now, db_property('PartnerState') will return "null" if no partner has been defined.



CR:681765
CR Number:   681765
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   12.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3424 24 Aug 2011 Fixed
Description
One or more high availability or read-only scale-out servers could have hung in rare timing dependent cases. This has been fixed.



CR:681788
CR Number:   681788
Product Name:   MobiLink
Product Component:   Utilities
Status:   Closed
OS:   Generic
Original Version:   7.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3421 17 Aug 2011 Fixed
12.0.0 2723 17 Aug 2011 Fixed
11.0.1 2661 17 Aug 2011 Fixed
Description
Version information was missing from mlnotif.jar, so an ianywhere.ml.notifier.BuildNum class with a static main method that prints the version with build number to System.out, has been added.



CR:681789
CR Number:   681789
Product Name:   MobiLink
Product Component:   Relay Server
Status:   Closed
OS:   Generic
Original Version:   12.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3421 17 Aug 2011 Fixed
12.0.0 2723 17 Aug 2011 Fixed
Description
Version information was missing from rstool.jar, so an ianywhere.ml.rs.BuildNum class with a static main method that prints the version with build number to System.out, has been added.



CR:681791
CR Number:   681791
Product Name:   MobiLink
Product Component:   Relay Server
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3421 16 Aug 2011 Fixed
Description
On Windows systems, a standalone Relay Server Outbound Enabler (RSOE) may have mistakenly identified a backend server as down or not accepting requests during the backend ping cycle on startup. This error could have happened if the Winsock DLL startup failed. This has now been fixed. Instead, the RSOE will print the error message "Backend ping socket startup failed", and backend ping attempts will stop.



CR:681796
CR Number:   681796
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3423 18 Aug 2011 Fixed
11.0.1 2662 18 Aug 2011 Fixed
Description
In a High Availability system, if the primary was processing changes faster than the mirror could apply them, it was possible that the primary could have hung. This has been fixed.



CR:681805
CR Number:   681805
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   11.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12 Sep 2012 Fixed
Description
In a mirroring system, if a procedure was in use on a mirror or copynode and DDL to ALTER or DROP the procedure was applied on the primary server, the mirror or copynode using the procedure may have given an assertion and shut down. This has been fixed. Now, any connections using the procedure will be dropped, and the following message will be printed to the server console: "Dropping connections that are preventing the transaction log from being applied."



In a mirroring system, if an event was in use on a mirror or copynode, and DDL to alter or drop the event was applied on the primary server, the mirror or copynode using the event may have given an assertion and shut down. This has been fixed. Now, if the event is running on the mirror or copynode, the connection the event is running on will be dropped, causing the event to be cancelled, and the following message will be printed to the server console: "Dropping connections that are preventing the transaction log from being applied."



CR:681813
CR Number:   681813
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   12.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3436 02 Sep 2011 Fixed
Description
The system procedure sa_mirror_server_status() would have returned incorrect results when run on a copy node server, or a mirror server in a mirroring setup. The procedure was returning results for the server's parent or partner, and could have returned an incorrect status for a server that had been involved in a failover. This has been fixed. The procedure will now return the correct status for the queried server and its children.



CR:681837
CR Number:   681837
Product Name:   UltraLiteJ
Product Component:   Runtime
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
11.0.1 2660 17 Aug 2011 Fixed
12.0.1 3484 24 Oct 2011 Fixed
Description
Doing a large number of download deletes when under extreme row limiting conditions may have resulted in an ArrayIndexOutOfBounds exception. This has been fixed.



CR:681915
CR Number:   681915
Product Name:   SQL Anywhere
Product Component:   ADO.Net Managed Provider
Status:   Closed
OS:   Microsoft Windows
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3424 19 Aug 2011 Fixed
12.0.0 2725 19 Aug 2011 Fixed
11.0.1 2662 19 Aug 2011 Fixed
10.0.1 4262 19 Aug 2011 Fixed
Description
A client application could have failed with an AccessViolationException, instead of a normal communication error, when a connection was dropped. This problem has been fixed.



CR:681921
CR Number:   681921
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3471 07 Oct 2011 Fixed
Description
If an application had an insert trigger on a local table that referenced a proxy table, then the trigger could have failed if the remote query involved the new row values for the trigger. This problem has now been fixed.
Workaround Description
 Use an internal variable to store the value of the referencing column and use this internal variable in the WHERE clause.



CR:681928
CR Number:   681928
Product Name:   SQL Anywhere
Product Component:   Sybase Central Plug-in
Status:   Closed
OS:   Microsoft Windows
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3423 18 Aug 2011 Fixed
Description
A command can be added to a remote task by selecting the task, then clicking the "Add Command" toolbar button or menu item. If a command is then selected in the "Commands" tab, the new command appears on the row following the selected row. This command was not actually added to the task at that position, instead, it was always added to the end of the command list. This has been fixed so that the new command actually follows the selected command.



This problem could have made it appear as if the order of commands changed when a remote task was deployed, if the remote task was deployed shortly after adding a command. In fact, the ordering of the commands was incorrect immediately after the command was added. If Sybase Central was started and the task was viewed without deploying it, the added command would have been at the end of the command list.



CR:681931
CR Number:   681931
Product Name:   SQL Anywhere
Product Component:   Sybase Central Plug-in
Status:   Closed
OS:   Microsoft Windows
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3423 19 Aug 2011 Fixed
Description
When looking at the commands in a deployed task, the "On failure" setting for each command was displayed as "Abort task", even for those commands with different "On failure" settings. This has been fixed. The correct "On failure" setting is now shown for each command.



CR:681956
CR Number:   681956
Product Name:   UltraLite
Product Component:   Runtime Libraries
Status:   Closed
OS:   Generic
Original Version:   11.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3422 07 Sep 2011 Fixed
11.0.1 2661 07 Sep 2011 Fixed
Description
Calling the ULConnection methods SetSyncInfo() or ULSetSynchInfo() with a ul_sync_info, where both the auth_parms and additional_parms were non-null, would have created a sync profile where one of the additional_parms had been made into an auth_parm. This has been fixed.



CR:681963
CR Number:   681963
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3450 15 Sep 2011 Fixed
11.0.1 2673 15 Sep 2011 Fixed
Description
If a statement similar to the statement below was used in a stored procedure, function, or trigger, a syntax error may have been incorrectly returned. The statement must have containeds both MATCH and DELETE or INSERT clauses. This has been fixed.



For example:

create or replace PROCEDURE test1( )

BEGIN

ALTER TABLE ixddl6 ADD CONSTRAINT FK_primary

FOREIGN KEY (x)

REFERENCES ixddl5(pk)

match unique simple on delete set null

END



CR:682234
CR Number:   682234
Product Name:   SQL Anywhere
Product Component:   Sybase Central Plug-in
Status:   Closed
OS:   Microsoft Windows
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
30 Aug 2011 Fixed
Description
The text editor used to display SQL commands in a remote task can be resized. Refreshing or restarting Sybase Central would have reset the size of the editor to the default. Now, the editor size is persisted.



CR:682246
CR Number:   682246
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3424 19 Aug 2011 Fixed
12.0.0 2725 19 Aug 2011 Fixed
11.0.1 2662 19 Aug 2011 Fixed
Description
If an application attempted to cancel a query that involved one or more proxy tables, then the cancel request would have, in some rare cases, been ignored. This problem has now been fixed.



CR:682250
CR Number:   682250
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   10.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3436 02 Sep 2011 Fixed
Description
In a database mirroring setup using asynchronous mode, the mirror was not responding to pages sent by the primary as quickly as it should, affecting performance. This has been fixed and performance should be improved.



CR:682512
CR Number:   682512
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3427 24 Aug 2011 Fixed
11.0.1 2665 24 Aug 2011 Fixed
Description
If a high availability partner was shutdown while it was the primary, its partner took over as primary, and then the partner that was shutdown was restarted, it could have failed to start with the errors:

"database is not compatible with primary; files must be replaced" and

"Database server shutdown due to incompatible files for database mirroring."



This has been fixed.



CR:682530
CR Number:   682530
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   12.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3451 15 Sep 2011 Fixed
11.0.1 2677 15 Sep 2011 Fixed
Description
When unloading a database, the DESC clause was not being added to statements in the reload.sql file when creating Primary and Foreign Keys with a descending sequence. This has been fixed.



CR:682532
CR Number:   682532
Product Name:   MobiLink
Product Component:   Java Plugin for Sybase Central
Status:   Closed
OS:   Generic
Original Version:   12.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3426 24 Aug 2011 Fixed
Description
In version 12 of the Table Mappings editor for synchronization models, if the mapping to direction was changed to "Not synchronized" it was not possible to use the same menu to change it back. As a work around, either use Edit > Undo, or save the model and re-add the table mapping. This has been fixed. Now the table mapping direction menus remain enabled after changing the mapping direction to "Not synchronized".



CR:682561
CR Number:   682561
Product Name:   MobiLink
Product Component:   Relay Server
Status:   Closed
OS:   Generic
Original Version:   12.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3427 24 Aug 2011 Fixed
12.0.0 2727 24 Aug 2011 Fixed
Description
The fix for Engineering case 660995 had caused an issue where client requests that were not assigned to a backend server may have caused the IIS worker to crash in rs_client.dll. The client request may not have been assigned for various reasons. For example, when the Relay Server Outbound Enabler of the backend server was not connected, or the farm was disabled. If that happened and there were also I/O error while reading the request for discarding, a crash could have occurred when the Relay Server tried to report the I/O error. The crash has been fixed.



CR:682621
CR Number:   682621
Product Name:   MobiLink
Product Component:   Relay Server
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3427 24 Aug 2011 Fixed
12.0.0 2727 24 Aug 2011 Fixed
Description
Remote Relay Server administration operations can be initiated from Sybase Central's Relay Server plugin, or via the Relay Server administration API. Remote administration operations, such as Relay Server reconfiguration or log archiving, could have caused the Linux Apache Relay Server to crash. This has been fixed.



CR:682648
CR Number:   682648
Product Name:   MobiLink
Product Component:   Relay Server
Status:   Closed
OS:   Generic
Original Version:   12.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3427 25 Aug 2011 Fixed
12.0.0 2727 25 Aug 2011 Fixed
11.0.1 2665 25 Aug 2011 Fixed
Description
When using the local Relay Server reconfiguration utility on Linux Apache to change the Relay Server configuration, or to archive the Relay Server log, the utility would not exit once complete. This has been fixed.



CR:682662
CR Number:   682662
Product Name:   SQL Anywhere
Product Component:   ADO.Net Managed Provider
Status:   Closed
OS:   Generic
Original Version:   10.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3427 25 Aug 2011 Fixed
12.0.0 2727 25 Aug 2011 Fixed
11.0.1 2665 25 Aug 2011 Fixed
10.0.1 4263 25 Aug 2011 Fixed
Description
A small amount of memory was leaked when an application using the ADO.NET interface executed a distributed transaction. This has now been fixed.



CR:682755
CR Number:   682755
Product Name:   SQL Anywhere
Product Component:   ODBC Client Library
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3428 25 Aug 2011 Fixed
12.0.0 2727 25 Aug 2011 Fixed
11.0.1 2666 25 Aug 2011 Fixed
Description
Multithreaded client applications (e,g., ODBC, OLEDB, ADO.NET applications) could have crashed with a memory access violation, or leaked memory, when attempting simultaneous connections to a server. This problem has been fixed.



CR:682756
CR Number:   682756
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3428 25 Aug 2011 Fixed
Description
If operations on a mirror server created a cycle by committing operations on the primary server (via, for example, an OMNI connection), the primary and mirror servers could have deadlocked on each other and appear to hang. The problem was most likely to have been seen when the mirror server was also attempting to shut down. This problem has been fixed.



CR:682762
CR Number:   682762
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3428 31 Aug 2011 Fixed
Description
Changes forn Engineering case 674559 introduced a bug which could have caused a crash on the primary server of a mirroring system when auto-adding a copy node. This problem has been fixed.



CR:682773
CR Number:   682773
Product Name:   SQL Anywhere
Product Component:   ADO.Net Managed Provider
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3429 31 Aug 2011 Fixed
12.0.0 2728 31 Aug 2011 Fixed
11.0.1 2666 31 Aug 2011 Fixed
Description
EF 4.1 is the latest release of Microsoft Entity Framework. The major new feature of EF 4.1 is "Code First". Support has now been added for Code First.



Code First enables a different development workflow: defining data model objects by simply writing C# or VB.NET classes mapping to database objects without ever having to open a designer or define an XML mapping file. Optionally, additional configuration can be performed by using data annotations or the Fluent API. Model can be used to generate a database schema or map to an existing database.



Here's an example which creates new database objects using the model:



using System;

using System.Collections.Generic;

using System.ComponentModel.DataAnnotations;

using System.Data.Entity;

using System.Data.Entity.Infrastructure;

using System.Linq;

using iAnywhere.Data.SQLAnywhere;



namespace CodeFirstExample

{

[Table( "EdmCategories", Schema = "DBA" )]

public class Category

{

public string CategoryId { get; set; }

[MaxLength( 64 )]

public string Name { get; set; }



public virtual ICollection<Product> Products { get; set; }

}



[Table( "EdmProducts", Schema = "DBA" )]

public class Product

{

public int ProductId { get; set; }

[MaxLength( 64 )]

public string Name { get; set; }

public string CategoryId { get; set; }



public virtual Category Category { get; set; }

}



[Table( "EdmSuppliers", Schema = "DBA" )]

public class Supplier

{

[Key]

public string SupplierCode { get; set; }

[MaxLength( 64 )]

public string Name { get; set; }

}



public class Context : DbContext

{

public Context() : base() { }

public Context( string connStr ) : base( connStr ) { }



public DbSet<Category> Categories { get; set; }

public DbSet<Product> Products { get; set; }

public DbSet<Supplier> Suppliers { get; set; }



protected override void OnModelCreating( DbModelBuilder modelBuilder )

{

modelBuilder.Entity<Supplier>().Property( s => s.Name ).IsRequired();

}

}



class Program

{

static void Main( string[] args )

{

Database.DefaultConnectionFactory = new SAConnectionFactory();

Database.SetInitializer<Context>( new DropCreateDatabaseAlways<Context>() );



using ( var db = new Context( "DSN=SQL Anywhere 12 Demo" ) )

{

var query = db.Products.ToList();

}

}

}

}



Here's another example which maps to an existing database:



using System;

using System.Collections.Generic;

using System.ComponentModel.DataAnnotations;

using System.Data.Entity;

using System.Data.Entity.Infrastructure;

using System.Linq;

using iAnywhere.Data.SQLAnywhere;



namespace CodeFirstExample

{

[Table( "Customers", Schema = "GROUPO" )]

public class Customer

{

[Key()]

public int ID { get; set; }

public string SurName { get; set; }

public string GivenName { get; set; }

public string Street { get; set; }

public string City { get; set; }

public string State { get; set; }

public string Country { get; set; }

public string PostalCode { get; set; }

public string Phone { get; set; }

public string CompanyName { get; set; }



public virtual ICollection<Contact> Contacts { get; set; }

}



[Table( "Contacts", Schema = "GROUPO" )]

public class Contact

{

[Key()]

public int ID { get; set; }

public string SurName { get; set; }

public string GivenName { get; set; }

public string Title { get; set; }

public string Street { get; set; }

public string City { get; set; }

public string State { get; set; }

public string Country { get; set; }

public string PostalCode { get; set; }

public string Phone { get; set; }

public string Fax { get; set; }



[ForeignKey( "Customer" )]

public int CustomerId { get; set; }

public virtual Customer Customer { get; set; }

}



public class Context : DbContext

{

public Context() : base() { }

public Context( string connStr ) : base( connStr ) { }



public DbSet<Contact> Contacts { get; set; }

public DbSet<Customer> Customers { get; set; }

}



class Program

{

static void Main( string[] args )

{

Database.DefaultConnectionFactory = new SAConnectionFactory();

Database.SetInitializer<Context>( null );



using ( var db = new Context( "DSN=SQL Anywhere 12 Demo" ) )

{

foreach ( var customer in db.Customers.ToList() )

{

Console.WriteLine( "Customer - " + string.Format( "{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}",

customer.ID, customer.SurName, customer.GivenName, customer.Street, customer.City,

customer.State, customer.Country, customer.PostalCode, customer.Phone, customer.CompanyName ) );



foreach ( var contact in customer.Contacts )

{

Console.WriteLine( " Contact - " + string.Format( "{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}, {10}",

contact.ID, contact.SurName, contact.GivenName, contact.Title, contact.Street, contact.City,

contact.State, contact.Country, contact.PostalCode, contact.Phone, contact.Fax ) );

}

}

}

}

}

}



Additional assembly references need to be add to run these examples: EntityFramework, iAnywhere.Data.SQLAnywhere.v4.0, System.ComponentModel.DataAnnotations, System.Data.Entity.



CR:682889
CR Number:   682889
Product Name:   MobiLink
Product Component:   Java Plugin for Sybase Central
Status:   Closed
OS:   Generic
Original Version:   12.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3429 30 Aug 2011 Fixed
Description
Changes made using the Interactive SQL utility might not have been automatically committed when it was closed, if it was opened from a new MobiLink project. This problem only affected newly created MobiLink projects. If Sybase Central was restarted after creating the project, the problem did not happen. It also only occurred when connect to the consolidated database using only an ODBC data source. If explicit connection parameters were provided, the problem did not happen. This has been fixed.



CR:683025
CR Number:   683025
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   10.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3432 01 Sep 2011 Fixed
11.0.1 2668 01 Sep 2011 Fixed
Description
If the connection making an http or https request was closed while the request was still executing, and that request was in turn making a request to a mirror server (for high availability or read-only scale-out), or making a request to a diagnostic server, the server could have hung or fail in some other way. This has been fixed.



In high availability or read-only scale-out, if the connection to the primary or parent server was dropped just after the mirror or copy node had determined its role, the mirror or copy node could have failed to start with the errors:

"database is not compatible with primary; files must be replaced" and

"Database server shutdown due to incompatible files for database mirroring."

This has been fixed. Note that attempting to restart the mirror or copy node after receiving this error should succeed in this case.



CR:683143
CR Number:   683143
Product Name:   MobiLink
Product Component:   Relay Server
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
04 Nov 2013 Fixed
Description
The IIS Relay Server is no longer multi-process. Shared memory for IPC and the Relay Server State Manager utility have been removed. The shared_mem property in the Relay Server configuration is now ignored. Users no longer need to setup a RSHost service. The Relay Server will start up on demand when the Web Service is running. Shutting down the web service also shuts down the Relay Server.



New and simplified configuration and logging conventions:

- Configuration file: <physical directory of the rs.dll>/rs.config

- Relay Server log file location: <physical directory of rs.dll>/Log/rs.log



The removal of the use of shared memory improves security and simplifies flow control signals, as there is one less resource to monitor. The new IIS Relay Server must be set up with a single application pool with web garden size = 1.



CR:683159
CR Number:   683159
Product Name:   SQL Remote for SQL Anywhere
Product Component:   Database Tools Interface
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3433 31 Aug 2011 Fixed
Description
When SQL Remote was running in continuous mode, if the max_retries message system parameter had been set, and a message was generated because the maximum size of the message had been reached before the next send phase, then SQL Remote would have incorrectly believed that an error had occurred when sending the message. SQL Remote would then have paused for the number of seconds specified by the pause_after_failure message system parameter. This problem has now been fixed.



CR:683161
CR Number:   683161
Product Name:   SQL Anywhere
Product Component:   OLEDB Client Library
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3422 30 Aug 2011 Fixed
11.0.1 2662 30 Aug 2011 Fixed
10.0.1 4261 30 Aug 2011 Fixed
9.0.2 4034 30 Aug 2011 Fixed
Description
A multithreaded application using the SQL Anywhere oledb driver could have crashed with an access violation when a rowset was released. This problem was introduced by the changes for Engineering case 662986, and has now been fixed.



CR:683170
CR Number:   683170
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   12.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3433 31 Aug 2011 Fixed
Description
When using a CREATE OR REPLACE MIRROR SERVER server_name AS COPY USING AUTO PARENT statement to convert a mirror server from a partner to a copy node, server_name would have been given an invalid parent and the alternate parent would be lost. This problem has been fixed.



CR:683177
CR Number:   683177
Product Name:   SQL Anywhere
Product Component:   ISQL
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3433 31 Aug 2011 Fixed
Description
The Interactive SQL utility would have crashed if the "Show progress messages" option was modified in the "Options" window while not connected to a database. This has been fixed.



CR:683240
CR Number:   683240
Product Name:   MobiLink
Product Component:   Relay Server
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3436 02 Sep 2011 Fixed
12.0.0 2729 02 Sep 2011 Fixed
Description
A forced termination of the web server worker process, may have caused the Relay Server Outbound Enabler (RSOE)connection to become unrecoverable until the rshost process was restarted. The RSOE will receive authentication error continuously upon every recovery attempt, and the Relay Server log will continuously report RSE3003 accordingly. The forced termination could have been caused by killing the w3wp processes, crashes, worker process recycling or IIS configuration update timeout waiting for outstanding requests to complete. This problem has now been corrected so that the recovery should succeed two minutes after the forced termination, without requiring the rshost process to be restarted.



The workaround is to restart the rshost process. This has been fixed



CR:683384
CR Number:   683384
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 01 Sep 2011 Fixed
11.0.1 2669 01 Sep 2011 Fixed
Description
Additional changes have been made for Engineering case 678817. Outbound HTTP worker threads could have hung indefinitely because the server was not broadcasting a notification.



CR:683385
CR Number:   683385
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   10.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3435 01 Sep 2011 Fixed
12.0.0 2729 01 Sep 2011 Fixed
11.0.1 2670 01 Sep 2011 Fixed
Description
If an application that was connected using Open Client or jConnect executed a Transact SQL batch that contained an undefined host variable, then there was a chance the server would have crashed. This has now been fixed so that batch will fail with a "not enough values for host variables" error.



CR:683394
CR Number:   683394
Product Name:   UltraLiteJ
Product Component:   Runtime
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3435 01 Sep 2011 Fixed
Description
When UltraLIteJ was run on Android devices, the method DatabaseInfo.getPageSize() could have returned an incorrect value. This has been fixed.



Also, the method Connection.getDatabaseProperty() was exposed for UltraLiteJ Android; and the method DatabaseInfo.getRelease() was modified to return the full software release, including the build number.



CR:683410
CR Number:   683410
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   10.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3446 07 Sep 2011 Fixed
Description
A server in a mirroring system could have crashed when another server with many IP addresses was connected. This has been fixed.



Note, if a server that does not have this fix, and has many IP addresses, connects to a server with this fix, the fixed server will give a protocol error.



CR:683425
CR Number:   683425
Product Name:   SQL Anywhere
Product Component:   OLEDB Client Library
Status:   Closed
OS:   Microsoft Windows
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3425 01 Sep 2011 Fixed
12.0.0 2726 01 Sep 2011 Fixed
11.0.1 2664 01 Sep 2011 Fixed
Description
Additional changes were required for Engineering case 681396, where the server may not start on HP-UX machines if there were many network interfaces. The description for case 681396 mentioned Unix systems, but this problem was actually limited to HP-UX only. A border case, as well as IPv6, were corrected as well.



CR:683525
CR Number:   683525
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   10.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3461 20 Sep 2011 Fixed
Description
If a partner in a mirroring environment setup that is mirroring more than one database, it is possible to specify more than one mirror state file. If multiple databases were started and configured on the same server without restarting the server after configuration, this could have resulted in the server not being able to get quorum when its partner shut down. This has been fixed.



CR:683552
CR Number:   683552
Product Name:   UltraLite
Product Component:   Runtime Libraries
Status:   Closed
OS:   Generic
Original Version:   11.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3437 06 Sep 2011 Fixed
11.0.1 2730 06 Sep 2011 Fixed
11.0.1 2670 06 Sep 2011 Fixed
Description
If an UltraLite application was suddenly terminated (application crash, device reset, etc.) while a transaction was in progress, and the partial transaction was flushed to the database file by another commit or checkpoint, rows were not properly rolled back on subsequent restart. This has now been corrected.



CR:683555
CR Number:   683555
Product Name:   UltraLite
Product Component:   Runtime Libraries
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3437 06 Sep 2011 Fixed
Description
The UltraLite Database Unload utility (ulunload) would not have preserved the download-only table attribute when unloading a database. This has been corrected.



CR:683700
CR Number:   683700
Product Name:   UltraLiteJ
Product Component:   Runtime
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3459 22 Nov 2011 Fixed
Description
With UltraLiteJ, committing a SQL statement that had updated a table containing a large BLOB or CLOB could have caused a StackOverflowError exception. This has been fixed.



CR:683704
CR Number:   683704
Product Name:   SQL Anywhere
Product Component:   Utilities
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3448 09 Sep 2011 Fixed
Description
Whenever the Server Licensing utility (dblic) was used with the -k option (to specify a new registration key), the registration key was being written to the license file. This should not have been done for add-on keys such as the High Availability option, and has now been corrected.



CR:683707
CR Number:   683707
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   12.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3444 06 Sep 2011 Fixed
Description
When a copy node was promoted to replace its parent via "ALTER MIRROR SERVER ... ALTER PARENT FROM ...", or internally because a copy node was not responding, siblings of the promoted node did not notice that their parent had changed and would continue trying to reach their original parent. This has been fixed.



CR:683717
CR Number:   683717
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3456 20 Sep 2011 Fixed
Description
When performing a database upgrade (either via the Upgrade utility (dbupgrad) or via the ALTER DATABASE UPGRADE statement) on a database containing spatial data, the server would have terminated with a the following error:



SQL error (-1474) -- SRID 0 is referenced by column ... of table ...



This has been fixed.



CR:683720
CR Number:   683720
Product Name:   MobiLink
Product Component:   Synchronization Server
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3448 12 Sep 2011 Fixed
Description
If a schema change was done using the START/STOP SYNCHRONIZATION SCHEMA CHANGE functionality, and authentication parameters were passed during synchronization, it was possible that the authentication parameters would not have been sent for the first synchronization after the schema change commands had been processed. This would likely have resulted in a failed synchronization. The next synchronization though would have been successful, and no data loss would have occurred. This problem has now been fixed, and authentication parameters are no longer missed.



CR:683721
CR Number:   683721
Product Name:   MobiLink
Product Component:   Streams
Status:   Closed
OS:   Generic
Original Version:   10.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3444 06 Sep 2011 Fixed
Description
When the password provided by the identity_password option for an encrypted private key for a client side certificate was incorrect, the error STREAM_ERROR_INTERNAL was reported. Now the correct error STREAM_ERROR_BAD_PRIVATE_KEY_PASSWORD is reported.



CR:683728
CR Number:   683728
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3447 08 Sep 2011 Fixed
12.0.0 2732 08 Sep 2011 Fixed
11.0.1 2674 08 Sep 2011 Fixed
Description
In some situations, the server may have crashed while executing an ALTER SYNCHRONIZATION PROFILE statement with the MERGE clause. The maximum size of the new profile string was being calculated incorrectly. This has been fixed.



CR:683774
CR Number:   683774
Product Name:   UltraLiteJ
Product Component:   Runtime
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3449 12 Sep 2011 Fixed
11.0.1 2676 12 Sep 2011 Fixed
Description
With UltraLiteJ, an UPDATE statement for table T with a subquery in the WHERE clause that referenced T, could have failed with a -144 error ("Column ... found in more than one table or it is used more than once in the SELECT list -- it needs a correlation name") at statement preparation time. This has been fixed.



CR:683813
CR Number:   683813
Product Name:   UltraLite
Product Component:   UltraLite for M-Business Anywhere
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3453 13 Sep 2011 Fixed
12.0.0 2736 13 Sep 2011 Fixed
Description
The methods Connection.getNewUUID() and ULPodUUID.toString() were removed in version 12.0 as a result of the introduction of equivalent SQL functions. These methods have been reintroduced. As a workaround the system functions newid() and uuidtostr() can be used.



Documentation:



Connection::getNewUUID method

Returns a new UUID value.



Syntax

UUID getNewUUID()



example:

uuid = conn.getNewUUID();



SQLType.toString method

Returns the string name of the specified SQL column type constant or BAD_SQL_TYPE if not a recognized type.



Syntax

String toString(UInt16 code)

Parameters

code The SQL column type constant.



example:

uuid_str = conn.getNewUUID().toString();



CR:683830
CR Number:   683830
Product Name:   MobiLink
Product Component:   Synchronization Server
Status:   Closed
OS:   Generic
Original Version:   12.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3446 07 Sep 2011 Fixed
Description
There were two problems in the MobiLink server remote ID locking logic that have now been corrected:

1) When the consolidated database was running on a MySQL server, the MobiLink server could have immediately failed a status-check request when the server was not able to lock the remote ID;

2) When the consolidated database was running on a SQL Anywhere server, if the remote ID could not be locked in the upload transaction, the server would have shown the following warning message:

"Retrying the upload after deadlock in the consolidated database"

and then retried the upload transaction one more time.



CR:683947
CR Number:   683947
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   12.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3447 08 Sep 2011 Fixed
12.0.0 2732 08 Sep 2011 Fixed
Description
In very rare cases, when a server shutdown was requested via the server console, the server would have shutdown successfully, but the server console would have stayed up. This would only have occurred on Windows machines with multiple processors. This has been fixed.



CR:683999
CR Number:   683999
Product Name:   SQL Anywhere
Product Component:   ADO.Net Managed Provider
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3447 09 Sep 2011 Fixed
12.0.0 2732 09 Sep 2011 Fixed
11.0.1 2674 09 Sep 2011 Fixed
10.0.1 4270 09 Sep 2011 Fixed
Description
When calling the method SADataReader.GetSchemaTable, the SQL Anywhere provider creates two prepared statements which were not dropped immediately in some situations. Actually, the statements are dropped either when the SACommand objects (created in SADataReader.GetSchema Method as local variables) are garbage collected, or when creating a new command and the number of prepared statements has exceeded the 'max_statement_count' option. Still, the SADataReader.GetSchema method has now been modified to dispose of the commands within the SADataReader.GetSchema method. This will drop the prepared statements immediately.



CR:684000
CR Number:   684000
Product Name:   UltraLiteJ
Product Component:   Runtime
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
11.0.1 2674 09 Sep 2011 Fixed
Description
The usage message for the UltraLiteJ Database Load utility (uljload -?) would have output a "null" for the new -z parameter (specify the page size in bytes). An untranslated usage message for -z has been added for all languages.



CR:684096
CR Number:   684096
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   12.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3448 12 Sep 2011 Fixed
Description
In timing dependent cases, a read-only scale-out copy node could have crashed or hung. This was more likely if the server was loaded and requests needed to be queued because there were no idle workers (more concurrent tasks than the current multiprogramming level). This has been fixed.



CR:684166
CR Number:   684166
Product Name:   SQL Anywhere
Product Component:   Other
Status:   Open
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
Description
Do we support load a table using USING CLIENT FILE, in the Perl driver?

If so, please document the prototype for Perl for db_register_a_callback function.



CR:684277
CR Number:   684277
Product Name:   UltraLite
Product Component:   UltraLite.NET
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3484 25 Oct 2011 Fixed
Description
Accessing result set or table columns, via streaming methods like ULResultSet::GetStringChunk in C++, could have returned unexpected values when the actual value was null, so checking explicitly to see if the value is null (ULResultSet::IsNull) was essential. This issue has been addressed by ensuring empty strings are now returned in this case. Proper handling of null values still requires an explicit check to differentiate between null and empty strings though.



CR:684335
CR Number:   684335
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3450 14 Sep 2011 Fixed
11.0.1 2677 14 Sep 2011 Fixed
Description
An explicit or implicit cursor describe that should have failed could have caused the server to crash. An example of a describe cursor that is expected to fail is if the describe is cancelled. This has been fixed so that server no longer crashes.



CR:684340
CR Number:   684340
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
11.0.1 2677 13 Sep 2011 Fixed
Description
When certain fatal errors occurred (particularly "dynamic memory exhausted"), the version 11.0 server attempts to create a cache.dmp file to describe the contents of cache at the time of the failure. When using an AWE cache, the server could have crashed while generating this dump file. The server had already encountered a fatal error and would need to be restarted anyway, but the crash prevented generating the dump file that would have allowed analysis of the allocation problem. This has been fixed so that the server no longer crashes when creating the cache.dmp file.



Note, SQL Anywhere version 12.0 does not attempt to generate a cache.dmp file.



CR:684361
CR Number:   684361
Product Name:   MobiLink
Product Component:   Utilities
Status:   Closed
OS:   Windows 2000
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3451 14 Sep 2011 Fixed
12.0.0 2734 14 Sep 2011 Fixed
Description
The MobiLink Replay utility (mlreplay) could have read and sent row data in the wrong order. This could have caused a crash in mlreplay, and caused the MobiLink server to read incorrect/invalid row data resulting in a -10308 error. This has been fixed.



CR:684479
CR Number:   684479
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3451 15 Sep 2011 Fixed
11.0.1 2677 15 Sep 2011 Fixed
Description
If a partner in a mirroring system was shutdown while it was the primary, its partner took over as primary, and then the partner that was shutdown was restarted, it could have failed to start with the errors:

"database is not compatible with primary; files must be replaced" and

"Database server shutdown due to incompatible files for database mirroring."



This has been fixed.



CR:684569
CR Number:   684569
Product Name:   SQL Anywhere
Product Component:   Other
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
15 Sep 2011 Fixed
Description
If an error occurred in the second or subsequent result set of a stored procedure that produces multiple result sets, the error was not reported correctly by the Perl More_Results function. This problem has been fixed.



CR:684575
CR Number:   684575
Product Name:   UltraLiteJ
Product Component:   Runtime
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
2678 15 Sep 2011 Fixed
3484 24 Oct 2011 Fixed
Description
Unlike other 'set' methods on Configuration objects, ConfigPersistent.setEncryption() would not have thrown an exception when the configuration object was in use by an open connection. The use of setEncryption() while in use could have potentially corrupted a database. This has been fixed by throwing an exception when attempting to change encryption.



CR:684608
CR Number:   684608
Product Name:   SQL Anywhere
Product Component:   ODBC Client Library
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3452 16 Sep 2011 Fixed
12.0.0 2735 16 Sep 2011 Fixed
11.0.1 2678 16 Sep 2011 Fixed
10.0.1 4273 16 Sep 2011 Fixed
Description
ODBC/JDBC escape syntax incorrectly required uppercase keywords like IN or FROM in scalar functions like POSITION and EXTRACT.

For example:

select {fn extract(month from '2011-05-07')}, {fn position('b' in 'abc')}



would have failed with syntax errors. If an uppercase keyword was used, the query would have succeeded:

select {fn extract(month FROM '2011-05-07')}, {fn position('b' IN 'abc')}



This problem has been fixed.



Note: In Interactive SQL, the braces { and } must be doubled-up (i.e. {{ and }} ).



CR:684721
CR Number:   684721
Product Name:   MobiLink
Product Component:   Relay Server
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3456 19 Sep 2011 Fixed
12.0.0 2736 19 Sep 2011 Fixed
11.0.1 2680 19 Sep 2011 Fixed
Description
The rs_client.dll may have crashed when parsing a malformed response header. This has been fixed so that the Relay Server will response with an http 400 instead of crashing.



CR:684769
CR Number:   684769
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3469 05 Oct 2011 Fixed
12.0.0 2744 05 Oct 2011 Fixed
Description
In very rare cases the server may have crashed when upgrading a pre-version 12 database to version 12, if the database did not use a transaction log file. This has been fixed.



CR:684808
CR Number:   684808
Product Name:   MobiLink
Product Component:   Relay Server
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3456 20 Sep 2011 Fixed
12.0.0 2737 20 Sep 2011 Fixed
11.0.1 2680 20 Sep 2011 Fixed
Description
When a back-end server aborted reading a request, for example due to some early detectable protocol error, the Outbound Enabler may have caused further protocol errors later on for other requests. This has been fixed.



CR:684881
CR Number:   684881
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   12.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
4.0 3465 29 Sep 2011 Fixed
Description
When using "Alter Mirror Server ..." to convert a copy node to a partner, a state file may have been neglected. This prevented the converted partner from knowing the current mirror state of the database, which could have caused both servers to start up as a primary server. This has been fixed. Now, only one server will be able to start as primary.



CR:684891
CR Number:   684891
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3465 29 Sep 2011 Fixed
12.0.0 2741 29 Sep 2011 Fixed
11.0.1 2685 29 Sep 2011 Fixed
Description
If a query plan used multiple nested-loops outer joins then a cursor positioning using FETCH RELATIVE 0 may have returned the next row in the forward direction, instead of refetching the current row. This has been fixed.



A possible work-around for the problem is to use an insensitive or keyset-driven cursor type.



CR:685083
CR Number:   685083
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   12.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
4.0 3461 23 Sep 2011 Fixed
Description
If a partner in a mirroring environment was started with an invalid state file provided, it may have started the database in a bad state. This has been fixed. The partner will now give an error saying "unable to start database", and shut down.



CR:685149
CR Number:   685149
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3476 14 Oct 2011 Fixed
11.0.1 2693 14 Oct 2011 Fixed
Description
When execution of a stored procedure or user defined function was cancelled by the user

and an error handler within the stored procedure was invoked, an incorrect SQLCODE (0 or

the error code of a different error that occurred prior to the cancel) could have been reported. An incorrect error message could also have been reported by the ERRORMSG() function. This has been fixed.



CR:685156
CR Number:   685156
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3564 02 Feb 2012 Fixed
11.0.1 2752 02 Feb 2012 Fixed
Description
The server may have crashed if a procedure debugger connection disconnected before a debuggee connection was able to get attached to the debugger. This has been fixed.



CR:685163
CR Number:   685163
Product Name:   UltraLite
Product Component:   UltraLite for M-Business Anywhere
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3496 28 Sep 2011 Fixed
12.0.0 2760 28 Sep 2011 Fixed
Description
For version 12.0, the methods ResultSet.getString() and ULTable.getString() would have returned an empty string for columns that were null. Earlier versions would have correctly returned a 'null'. These methods have been corrected so that they now return results consistent with the prior versions.



CR:685205
CR Number:   685205
Product Name:   SQL Anywhere
Product Component:   Utilities
Status:   Closed
OS:   Generic
Original Version:   10.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3477 17 Oct 2011 Fixed
11.0.1 2695 17 Oct 2011 Fixed
Description
When unloading a database, comments for unique constraints were not included in the reload.sql file. This has been fixed.



CR:685284
CR Number:   685284
Product Name:   UltraLite
Product Component:   Runtime Libraries
Status:   Closed
OS:   Generic
Original Version:   11.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3461 23 Sep 2011 Fixed
11.0.1 2682 23 Sep 2011 Fixed
Description
If a synchronization failed during the upload, subsequent changes to the database would not have been uploaded in the next synchronization, but in the synchronization after that. This has been fixed.



CR:685289
CR Number:   685289
Product Name:   SQL Anywhere
Product Component:   Other
Status:   Closed
OS:   Solaris
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3467 04 Oct 2011 Fixed
12.0.0 2743 04 Oct 2011 Fixed
11.0.1 2687 04 Oct 2011 Fixed
Description
When performing an archive backup via an external backup provider, the database server provided incorrect min_iosize & max_iosize parameters to the provider when calling the syb_defineapi() function. Generally, the min_iosize was set to what is actually the server's maximum IO size and max_iosize was set to 512K. Usually, the min_iosize was larger than the max_iosize. This problem has been fixed by setting the min_iosize to 2K and the max_iosize to the server's actual max buffer size.



CR:685299
CR Number:   685299
Product Name:   SQL Anywhere
Product Component:   Sybase Central Plug-in
Status:   Closed
OS:   Generic
Original Version:   11.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3461 23 Sep 2011 Fixed
11.0.1 2682 23 Sep 2011 Fixed
Description
The "Overview" panel for a database shows the HTTP and HTTPS ports which its server is using. If both HTTP and HTTPS were used, and the server's -xs command line option was sufficiently complex, the reported port numbers would have been incorrect. Typically, they were more than 6 digits long. Now, the correct port numbers are displayed.



CR:685318
CR Number:   685318
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3461 23 Sep 2011 Fixed
12.0.0 2739 23 Sep 2011 Fixed
11.0.1 2 23 Sep 2011 Fixed
Description
The values returned in the table_page_cached and ext_page_cached columns of the result set returned by the system procedure sa_table_stats() could have been smaller than the number of pages that were actually cached by the server. This problem has been corrected.



CR:685323
CR Number:   685323
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3460 26 Sep 2011 Fixed
12.0.0 2738 26 Sep 2011 Fixed
11.0.1 2682 26 Sep 2011 Fixed
Description
If the server's ports (-x) or web protocols command line option (-xs) contained certain multibyte characters, the server could have failed to start up and would have displayed the server's usage message or window. This problem has been fixed.



CR:685559
CR Number:   685559
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3463 27 Sep 2011 Fixed
11.0.1 2684 27 Sep 2011 Fixed
Description
If a non-recurring event was run on a read-only database, or had the "FOR ALL" clause, indicating it could run on a mirror or copy node, the server could have hung with 1 CPU at 100% after the event ran. Non-recurring events are events with a SCHEDULE clause that does not specify EVERY or ON. This has been fixed.



CR:685566
CR Number:   685566
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3483 21 Oct 2011 Fixed
11.0.1 2698 21 Oct 2011 Fixed
Description
When a mirror or diagnostics connection to another server was attempted the "Using broadcast address of: ..." message was logged to the console when it should not have been. This has been fixed so that this message is only logged if the -z server option is used.



CR:685574
CR Number:   685574
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   10.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3469 06 Oct 2011 Fixed
11.0.1 2689 06 Oct 2011 Fixed
Description
When unloading a database, ALTER INDEX ... RENAME statements were not being added to the reload.sql file when an index or unique constraint had been renamed. This has been fixed.



CR:685733
CR Number:   685733
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3465 29 Sep 2011 Fixed
12.0.0 2741 29 Sep 2011 Fixed
11.0.1 2685 29 Sep 2011 Fixed
Description
The server could have unnecessarily consumed 100% of one CPU in certain circumstances as described below. These problems have been fixed.

- In certain cases when a copy node lost its connection to its parent and then encountered a log mismatch with the parent after it reconnected, a single CPU would remain at 100% utilization indefinitely.

- When cancelling a CREATE EVENT statement while processing a procedure profile (sa_procedure_profile, sa_procedure_profile_summary), a single CPU would have remained at 100% utilization until no connections were processing profile information

- While waiting for connections to drop when yielding to a mirroring partner, a CPU would have remained at 100% utilization until all connections were dropped.



CR:685746
CR Number:   685746
Product Name:   UltraLiteJ
Product Component:   Runtime
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3464 28 Sep 2011 Fixed
Description
With UltraLiteJ for Android, the method DatabaseInfo.getNumberRowsToUpload() always returned 0. This has been fixed so that it now works as documented.



CR:685857
CR Number:   685857
Product Name:   SQL Anywhere
Product Component:   ISQL
Status:   Closed
OS:   Microsoft Windows
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3466 03 Oct 2011 Fixed
11.0.1 2687 03 Oct 2011 Fixed
Description
When inserting a value into a FLOAT column, an error would have been given if the absolute value of the number was too big, or too close to zero. This has been fixed. Now, an error will only be given if the absolute value of the number is too big. If the number is too close to zero, it will be set to zero and inserted without an error.



CR:685873
CR Number:   685873
Product Name:   SQL Anywhere
Product Component:   Utilities
Status:   Closed
OS:   Generic
Original Version:   10.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3465 29 Sep 2011 Fixed
12.0.0 2741 29 Sep 2011 Fixed
11.0.1 2685 29 Sep 2011 Fixed
Description
When using the Service utility (dbsvc) for Windows to delete a service that was currently running, the following messages were displayed:

The specified service is running. The service will be deleted when it is stopped.

Service "<svc name>" was deleted successfully.



This has been fixed. If the service is running, only the first message is displayed, otherwise only the second is displayed.



CR:685894
CR Number:   685894
Product Name:   SQL Anywhere
Product Component:   Other
Status:   Closed
OS:   Microsoft Windows
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3476 14 Oct 2011 Fixed
Description
When running at a verbosity higher than 0, the Relay Server Outbound Enabler was not obscuring the security token and passwords in the log file. This has been fixed so that their values are now hidden by ******, regardless of verbosity level.



CR:685973
CR Number:   685973
Product Name:   SQL Anywhere
Product Component:   Other
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3466 03 Oct 2011 Fixed
12.0.0 2742 03 Oct 2011 Fixed
11.0.1 2685 03 Oct 2011 Fixed
Description
If a user's path contained a large number of directories and/or contained directories located on mapped network drives, the first connection attempt made by an application could have been slow. This has been fixed. A workaround is to create an empty file called saldap.ini (assuming the LDAP feature is not being used) in the installation bin32/bin64 directory.



CR:685982
CR Number:   685982
Product Name:   MobiLink
Product Component:   Java Plugin for Sybase Central
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3483 24 Oct 2011 Fixed
Description
Updating the remote schema in a synchronization model from an UltraLite database may have subsequently caused errors, including NullPointerException, if a user was not specified when connecting to the UltraLite database. This would have changed the remote tables to have no owner, but the table mappings may still have referred to remote tables using owners. Such invalid mappings were not detected by the program when opening a synchronization model. This has been fixed. Owner mismatches for table mappings are now detected when the remote table in either the remote schema or the table mapping has no owner



.A workaround is to specify a user when connecting to the UltraLite database to update the remote schema.



The error message displayed when a table in a table mapping can't be found in the corresponding schema has also been fixed. The message now correctly includes the table name that could not be found, instead of displaying '{0}' for the table name.



Another problem is also addressed with this change. Previously if you changed the remote table for a table mapping, some options could change to their defaults, such as the direction changing to bidirectional. Now the synchronization direction and other synchronization options are maintained.



CR:686009
CR Number:   686009
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3467 03 Oct 2011 Fixed
Description
Under some circumstances SQL Anywhere HTTP logs would have contained an empty URI for the @U log-format place holder. This may have occurred for the following reasons:

- HTTP METHOD was not supported,

- request URL was malformed,

- the HTTP listener specifies that the DBN was required but the database name was not within the URL path.



This has been corrected. Now if a request has faulted due to any of the above reasons, the HTTP method (@M) and version (@V) will emit the string "???". The given request line is pre-pended with a ">>>" and emitted for the (@U) format place holder.



For example:

A request of the form:

BLAH /sample/test HTTP/1.0

will emit the following for LogFormat="@M @U @V"

"??? >>> BLAH /sample/test HTTP/1.0 ???"





--------------------------------------华丽的分割线-------------------------------------------------------------------------

Sybase SQL Anywhere数据库恢复工具ReadASADB:

之前就已经研发成功了能够从Sybase SQL Anywhere的DB文件中恢复数据的工具: ReadASADB。
此工具支持ASA v5.0, v6.0, v7.0, v8.0, v9.0, v10.0, v11.0, v12.0, v16.0, v17.0等版本。
能够从损坏的SQL Anywhere数据文件(.db)和UltraLite数据文件(.udb)上提取数据的非常规恢复工具。
恢复Sybase SQL Anywhere的工具在国内处于领先水平。

Sybase SQL Anywhere数据库恢复工具ReadASADB功能
能够从损坏的SQL Anywhere数据文件(.db)和UltraLite数据文件(.udb)上提取数据的非常规恢复工具
  1. 适用于所有的SQL Anywhere版本    包括:5.x,6.x,7.x,8.x,9.x,10.x,11.x,12.x,16.x,17.x
  2. 适用于所有的UltraLite版本
  3. 能够恢复出来表结构和数据
  4. 能够恢复自定义数据类型
  5. 能够恢复存储过程等对象的语法
  6. 能够导出到目标数据库
  7. 能够导出到SQL文件并生成导入脚本
  8. 支持多种字符集,包括:cp850、cp936、gb18030、utf8等
  9. 能够恢复未加密或者简单加密类型的数据
  10. 简单易用
  11. 限制:不支持AES加密的数据文件
请参考:研发成功了从Sybase SQL Anywhere的DB文件上恢复数据的工具
            SQL Anywhere数据库非常规恢复工具ReadASADB使用介绍

Sybase SQL Anywhere数据库恢复工具ReadASADB适用场景

各种误操作:

  1. 误截断表(truncate table)
  2. 误删除表(drop table)
  3. 错误的where条件误删数据
  4. 误删除db或log文件
  5. 误删除表中的字段

Sybase SQL Anywhere数据库恢复工具ReadASADB的应用场景:

1.因为物理磁盘故障、操作系统、系统软件方面或者掉电等等原因导致的Sybase SQL Anywhere数据库无法打开的情况;
2.误操作,包括truncate table,drop table,不正确的where条件导致的误删除等;
Sybase SQL Anywhere无法打开时,比较常见的错误是:Assertion failed。
如:
1、Internal database error *** ERROR *** Assertion failed:201819 (8.0.1.2600) Checkpoint log: invalid bitmap page -- transaction rolled back
2、Internal database error *** ERROR *** Assertion failed:201819 (8.0.1.2600) Page number on page does not match page requested -- transaction rolled back
3、Internal database error *** ERROR *** Assertion failed:200502 (9.0.2.2451) Checksum failure on page 23 -- transaction rolled back
4、File is shorter than expected
5、Internal database error *** ERROR *** Assertion failed: 201116 Invalid free list index page found while processing checkpoint log -- transaction rolled back
6、*** ERROR *** Assertion failed: 51901 Page for requested record not a table page or record not present on page
7、*** ERROR *** Assertion failed: 201417 (7.0.4.3541) Invalid count or free space offset detected on a table page
8、Internal database error *** ERROR *** Assertion failed: 201425 (8.0.3.5594) Invalid count or free space offset detected on a free list page -- transaction rolled back.
9、Internal database error *** ERROR *** Assertion failed: 100702 (8.0.1.2600) Unable to modify indexes for a row referenced in rollback log -- transaction rolled back


-------------------------------------------------------------------------------------------

Sybase ASE数据库恢复工具READSYBDEVICE:

一个不依赖数据库管理系统、直接从Sybase数据库设备文件上提取数据的业内领先的恢复工具!
能够从损坏的Sybase ASE设备文件(.dat)上提取数据的非常规恢复工具。

Sybase ASE数据库恢复工具READSYBDEVICE的主要功能:

  1. 被勒索病毒加密数据文件及备份文件情况下的恢复;
  2. 系统崩溃只剩下数据文件的情况下的恢复,甚至数据库文件不存在而只有损坏的备份文件情况下的恢复;
  3. 因断电、硬盘坏道等造成数据库文件损坏情况下的恢复;
  4. delete数据恢复、误update数据恢复、误删除表(drop)恢复、误truncate表恢复 等;
  5. 各种Sybase内部系统表损坏、索引错误的修复;
  6. master数据库损坏而无法正常运行情况下的恢复;
  7. Sybase数据库被标记为可疑,不可用等情况的恢复;
  8. Sybase数据库中数据文件内部出现坏块情况下的恢复;
  9. Sybase数据库无数据文件但有日志文件的情况下的恢复;
  10. Sybase数据库只有数据文件无任何日志文件的情况下的恢复;
  11. Sybase数据文件被误删除情况下的碎片提取恢复;
  12. 磁盘阵列上的Sybase数据库被误格式化情况下的数据库恢复;
  13. 数据库sysobjects等系统表损坏无法正常应用情况下的恢复;
  14. Sybase数据库还原数据库出现失败情况下的恢复;
  15. Sybase数据库只剩下损坏的备份文件情况下的恢复。

Sybase ASE数据库恢复工具READSYBDEVICE支持的版本:

Sybase ASE 11.0.x,11.5.x,11.9.x,12.0.x,12.5.x,15.0.x,15.5.x,15.7.x,16.0.x


-------------------------------------------------------------------------------------------

SQL Server数据库恢复工具SQLRescue:

一个不依赖数据库管理系统、直接从SQL Server数据库文件上提取数据的业内领先的恢复工具!
能够从损坏的SQL Server数据库文件(.mdf)上提取数据的非常规恢复工具。

SQL Server数据库恢复工具SQLRescue的主要功能:

  1. 系统崩溃只剩下数据文件的情况下的恢复,即无日志文件或者日志文件损坏情况下的恢复;
  2. 断电导致数据库文件损坏情况下的恢复;
  3. 硬盘坏道造成数据库损坏情况下的恢复;
  4. 数据文件内部存在坏页情况下的恢复;
  5. 企业管理器误删除数据表记录,管理软件误删除数据表记录的恢复;
  6. 并闩锁错误、格式化、误删除后导致软件不能使用的情况;
  7. 无法读取并闩锁页sysindexes失败情况下的修复;
  8. 数据文件被误删除情况下的碎片提取恢复;
  9. 系统表损坏、索引错误、误删除数据库表、删除记录的数据找回;
  10. master数据库损坏而无法正常运行情况下的恢复;
  11. 数据文件无法附加情况下的数据恢复;
  12. 数据库被标记为可疑,质疑,不可用等情况的恢复;
  13. 数据库sysobjects等系统表损坏情况下的恢复;
  14. 数据被误(drop、delete、truncate)删除表数据的恢复,误update后的数据恢复等;
  15. 还原时报一致性错误,错误823等情况下的数据恢复,各种错误提示的数据库文件修复;
  16. 数据库被误格式化等情况下的数据库恢复;
  17. 日志收缩造成数据库损坏情况下的恢复;
  18. 仅剩损坏的备份文件情况下的恢复。

SQL Server数据库恢复工具SQLRescue技术特点:

只要SQL Server数据库的数据文件存在,我们就有办法帮您从数据文件中找回重要数据。
  1. 从数据文件中直接恢复数据
  2. 不能附加时直接恢复数据并生成新的数据库
  3. 系统表损坏的数据库修复
  4. 快速修复SQL 823错误、连接中断错误

SQL Server数据库恢复工具SQLRescue支持的版本:

Microsoft SQL Server 7.0, 2000, 2005, 2008, 2008R2, 2012, 2014, 2016, 2017,2019。
+-------------------------------------华丽的分割线-------------------------------------------------------------------------