Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | If the connection string cannot be parsed, throw an exception with an error message describing the problem. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
89b5dbd4449dc27e79d8f89176b83ef1 |
User & Date: | mistachkin 2013-05-27 21:23:41.375 |
Context
2013-05-28
| ||
08:19 | Fix incorrect comment. check-in: 3a98512a05 user: mistachkin tags: trunk | |
2013-05-27
| ||
21:23 | If the connection string cannot be parsed, throw an exception with an error message describing the problem. check-in: 89b5dbd444 user: mistachkin tags: trunk | |
2013-05-26
| ||
23:54 | Handle a null return value from the SQLiteConvert.NewSplit method. check-in: d9f1267d10 user: mistachkin tags: trunk | |
Changes
Changes to System.Data.SQLite/SQLiteConnection.cs.
︙ | ︙ | |||
1408 1409 1410 1411 1412 1413 1414 | internal static SortedList<string, string> ParseConnectionString(string connectionString) { string s = connectionString; int n; SortedList<string, string> ls = new SortedList<string, string>(StringComparer.OrdinalIgnoreCase); // First split into semi-colon delimited values. | > | > > > | 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 | internal static SortedList<string, string> ParseConnectionString(string connectionString) { string s = connectionString; int n; SortedList<string, string> ls = new SortedList<string, string>(StringComparer.OrdinalIgnoreCase); // First split into semi-colon delimited values. string error = null; string[] arParts = SQLiteConvert.NewSplit(s, ';', true, ref error); if (arParts == null) throw new ArgumentException(String.Format("Invalid ConnectionString format, cannot parse: {0}", error)); int x = (arParts != null) ? arParts.Length : 0; // For each semi-colon piece, split into key and value pairs by the presence of the = sign for (n = 0; n < x; n++) { if (arParts[n] == null) continue; |
︙ | ︙ |
Changes to System.Data.SQLite/SQLiteConvert.cs.
︙ | ︙ | |||
522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 | /// work will be performed and null will be returned. /// </param> /// <param name="keepQuote"> /// If this parameter is non-zero, all double-quote characters will be /// retained in the returned list of strings; otherwise, they will be /// dropped. /// </param> /// <returns> /// The new array of strings or null if the input string is null -OR- the /// separator character is a backslash or a double-quote -OR- the string /// contains an unbalanced backslash or double-quote character. /// </returns> internal static string[] NewSplit( string value, char separator, | > > > > | > > > | > > > > | 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 | /// work will be performed and null will be returned. /// </param> /// <param name="keepQuote"> /// If this parameter is non-zero, all double-quote characters will be /// retained in the returned list of strings; otherwise, they will be /// dropped. /// </param> /// <param name="error"> /// Upon failure, this parameter will be modified to contain an appropriate /// error message. /// </param> /// <returns> /// The new array of strings or null if the input string is null -OR- the /// separator character is a backslash or a double-quote -OR- the string /// contains an unbalanced backslash or double-quote character. /// </returns> internal static string[] NewSplit( string value, char separator, bool keepQuote, ref string error ) { const char EscapeChar = '\\'; const char QuoteChar = '\"'; // // NOTE: It is illegal for the separator character to be either a // backslash or a double-quote because both of those characters // are used for escaping other characters (e.g. the separator // character). // if ((separator == EscapeChar) || (separator == QuoteChar)) { error = "separator character cannot be the escape or quote characters"; return null; } if (value == null) { error = "string value to split cannot be null"; return null; } int length = value.Length; if (length == 0) return new string[0]; List<string> list = new List<string>(); |
︙ | ︙ | |||
616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 | } // // NOTE: An unbalanced escape or quote character in the string is // considered to be a fatal error; therefore, return null. // if (escape || quote) return null; if (element.Length > 0) list.Add(element.ToString()); return list.ToArray(); } | > > > | 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 | } // // NOTE: An unbalanced escape or quote character in the string is // considered to be a fatal error; therefore, return null. // if (escape || quote) { error = "unbalanced escape or quote character found"; return null; } if (element.Length > 0) list.Add(element.ToString()); return list.ToArray(); } |
︙ | ︙ |