Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | More bugfixes |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | sourceforge |
Files: | files | file ages | folders |
SHA1: |
53b6595afd668bb975fb0a49781ab086 |
User & Date: | rmsimpson 2005-12-28 17:39:18.000 |
Context
2005-12-30
| ||
16:43 | 1.0.24.2 check-in: be65e0d94a user: rmsimpson tags: sourceforge | |
2005-12-28
| ||
17:39 | More bugfixes check-in: 53b6595afd user: rmsimpson tags: sourceforge | |
2005-12-27
| ||
15:32 | Implemented RecordsAffected property check-in: 673edbfb15 user: rmsimpson tags: sourceforge | |
Changes
Changes to System.Data.SQLite/SQLiteDataReader.cs.
︙ | ︙ | |||
75 76 77 78 79 80 81 | /// <summary> /// Initializes and resets the datareader's member variables /// </summary> internal void Initialize() { _activeStatementIndex = -1; _activeStatement = null; | | | 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | /// <summary> /// Initializes and resets the datareader's member variables /// </summary> internal void Initialize() { _activeStatementIndex = -1; _activeStatement = null; _rowsAffected = -1; _fieldCount = -1; } /// <summary> /// Closes the datareader, potentially closing the connection as well if CommandBehavior.CloseConnection was specified. /// </summary> public override void Close() |
︙ | ︙ | |||
661 662 663 664 665 666 667 668 669 670 671 | SQLiteStatement stmt = null; int fieldCount; while (true) { if (_activeStatement != null && stmt == null) { // If we're only supposed to return a single rowset, step through all remaining statements once until // they are all done and return false to indicate no more resultsets exist. if ((_commandBehavior & CommandBehavior.SingleResult) != 0) { | > > > < < < | < > > > > > < < < < < | > | 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 | SQLiteStatement stmt = null; int fieldCount; while (true) { if (_activeStatement != null && stmt == null) { // Reset the previously-executed statement _activeStatement._sql.Reset(_activeStatement); // If we're only supposed to return a single rowset, step through all remaining statements once until // they are all done and return false to indicate no more resultsets exist. if ((_commandBehavior & CommandBehavior.SingleResult) != 0) { for (; ; ) { stmt = _command.GetStatement(_activeStatementIndex + 1); if (stmt == null) break; _activeStatementIndex++; stmt._sql.Step(stmt); if (stmt._sql.ColumnCount(stmt) == 0) { if (_rowsAffected == -1) _rowsAffected = 0; _rowsAffected += stmt._sql.Changes; } stmt._sql.Reset(stmt); // Gotta reset after every step to release any locks and such! } return false; } } // Get the next statement to execute stmt = _command.GetStatement(_activeStatementIndex + 1); // If we've reached the end of the statements, return false, no more resultsets if (stmt == null) return false; // If we were on a current resultset, set the state to "done reading" for it if (_readingState < 1) _readingState = 1; _activeStatementIndex++; fieldCount = stmt._sql.ColumnCount(stmt); // If the statement is not a select statement or we're not retrieving schema only, then perform the initial step if ((_commandBehavior & CommandBehavior.SchemaOnly) == 0 || fieldCount == 0) { if (stmt._sql.Step(stmt)) { _readingState = -1; } else if (fieldCount == 0) // No rows returned, if fieldCount is zero, skip to the next statement { if (_rowsAffected == -1) _rowsAffected = 0; _rowsAffected += stmt._sql.Changes; stmt._sql.Reset(stmt); continue; // Skip this command and move to the next, it was not a row-returning resultset } else // No rows, fieldCount is non-zero so stop here { _readingState = 1; // This command returned columns but no rows, so return true, but HasRows = false and Read() returns false |
︙ | ︙ | |||
774 775 776 777 778 779 780 | } /// <summary> /// Retrieve the count of records affected by an update/insert command. Only valid once the data reader is closed! /// </summary> public override int RecordsAffected { | | | 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 | } /// <summary> /// Retrieve the count of records affected by an update/insert command. Only valid once the data reader is closed! /// </summary> public override int RecordsAffected { get { return _rowsAffected; } } /// <summary> /// Indexer to retrieve data from a column given its name /// </summary> /// <param name="name">The name of the column to retrieve data for</param> /// <returns>The value contained in the column</returns> |
︙ | ︙ |