--- StoredProcedure.cs.1.0.6 2005-10-04 20:15:58.000000000 +0200 +++ StoredProcedure.cs 2005-10-04 20:29:00.523076312 +0200 @@ -122,9 +122,12 @@ if (parts.Length == 0) continue; string direction = parts.Length >= 3 ? parts[0] : "in"; string vName = parts.Length >= 3 ? parts[1] : parts[0]; + // FIXME: Check if ANSI_QUOTES is set + vName = vName.Trim('"'); string pName = connection.ParameterMarker + vName; - vName = "@" + hash + vName; + int paramIndex = cmd.Parameters.IndexOf(vName); + vName = "@" + hash + paramIndex; if (direction.Equals("in")) sqlStr += pName + ", "; @@ -172,16 +175,16 @@ for (int i=0; i < reader.FieldCount; i++) { string fieldName = reader.GetName(i); - fieldName = marker + fieldName.Remove(0, hash.Length+1); - reader.CurrentResult[i] = parameters[fieldName].GetValueObject(); + int fieldIndex = Int32.Parse(fieldName.Remove(0, hash.Length+1)); + reader.CurrentResult[i] = parameters[fieldIndex].GetValueObject(); } reader.Read(); for (int i=0; i < reader.FieldCount; i++) { string fieldName = reader.GetName(i); - fieldName = marker + fieldName.Remove(0, hash.Length+1); - parameters[fieldName].Value = reader.GetValue(i); + int fieldIndex = Int32.Parse(fieldName.Remove(0, hash.Length+1)); + parameters[fieldIndex].Value = reader.GetValue(i); } reader.Close(); } --- command.cs.1.0.6 2005-10-04 19:45:50.000000000 +0200 +++ command.cs 2005-10-04 17:37:14.000000000 +0200 @@ -607,7 +607,7 @@ sqlPart.Remove( 0, sqlPart.Length ); } else if (sqlPart.Length > 0 && sqlPart[0] == parameters.ParameterMarker && - ! Char.IsLetterOrDigit(c) && c != '_' && c != '.' && c != '$') + ! Char.IsLetterOrDigit(c) && c != '_' && c != '.' && c != '$' && c != '@') { tokens.Add( sqlPart.ToString() ); sqlPart.Remove( 0, sqlPart.Length );