Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Implemented RecordsAffected property |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | sourceforge |
Files: | files | file ages | folders |
SHA1: |
673edbfb1570e131e294968c2c45fc2e |
User & Date: | rmsimpson 2005-12-27 15:32:21.000 |
Context
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 | |
15:32 | Fixed RowUpdated event check-in: 8f627c55dc 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 = 0; _fieldCount = -1; } /// <summary> /// Closes the datareader, potentially closing the connection as well if CommandBehavior.CloseConnection was specified. /// </summary> public override void Close() |
︙ | ︙ | |||
654 655 656 657 658 659 660 | /// Moves to the next resultset in multiple row-returning SQL command. /// </summary> /// <returns>True if the command was successful and a new resultset is available, False otherwise.</returns> public override bool NextResult() { CheckClosed(); | | | | > > | | | | | | > > > | > | 654 655 656 657 658 659 660 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 725 | /// Moves to the next resultset in multiple row-returning SQL command. /// </summary> /// <returns>True if the command was successful and a new resultset is available, False otherwise.</returns> public override bool NextResult() { CheckClosed(); 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) { // Reset the previously-executed command _activeStatement._sql.Reset(_activeStatement); for (; ; ) { stmt = _command.GetStatement(_activeStatementIndex); _activeStatementIndex++; if (stmt == null) break; stmt._sql.Step(stmt); _rowsAffected += stmt._sql.Changes; stmt._sql.Reset(stmt); // Gotta reset after every step to release any locks and such! } return false; } else { // Reset the previously-executed command _activeStatement._sql.Reset(_activeStatement); } } // 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 we're told to get schema information only, then don't perform an initial step() through the resultset 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 { _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 } |
︙ | ︙ | |||
768 769 770 771 772 773 774 | } /// <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 (IsClosed) ? _rowsAffected : -1; } } /// <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> |
︙ | ︙ |