[Mono-list] sqlmetal on Mono 2.6 stable
Jonathan Pryor
jonpryor at vt.edu
Tue Jan 19 13:40:45 EST 2010
On Sun, 2010-01-17 at 19:59 -0500, Costantino Pipero wrote:
> I parked this issue for a while and reinstalled my code in a fresh OpenSuse
> 11.2 setup (with the latest Mono stable release and MySQL 5.1...).
>
> I tried sqlmetal again with all the options that we discussed and I am stuck
> with the same results.
> Using
>
> sqlmetal
> "/databaseConnectionProvider=MySql.Data.MySqlClient.MySqlCOnnection.MySqlData"
> "/conn:Server:localhost;Database=adventureworks;Uid=root;Pwd=xyz"
> /code:awmodel.cs
Offhand, that's not a fully-qualified assembly name, and it's
mis-capitalized. You likely want:
"/databaseConnectionProvider=MySql.Data.MySqlClient.MySqlConnection, MySql.Data"
You'll also want /provider:MySql or sqlmetal will attempt to use
Microsoft SQL Server SQL when communicating with the DB (which is likely
wrong ;-).
> I get the following error
>
> LoaderFactory.Load(schemaType=MySqlSchemaLoader, dbConnType=MySqlConnection)
> Failed on setting
> ConnectionString=Server:localhost;Database=adventureworks;Uid=root;Pwd=xyz
> LoaderFactory.Load() failed: Array index is out of range.
> sqlmetal failed:System.IndexOutOfRangeException: Array index is out of
> range.
> at ByteFX.Data.Common.DBConnectionString.ParseKeyValuePairs (System.String
> src) [0x00000] in <filename unknown>:0
> at ByteFX.Data.Common.DBConnectionString.Parse (System.String
> newConnectString) [0x00000] in <filename unknown>:0
> at ByteFX.Data.Common.DBConnectionString.SetConnectionString
> (System.String value) [0x00000] in <filename unknown>:0
> at ByteFX.Data.MySqlClient.MySqlConnection.set_ConnectionString
> (System.String value) [0x00000] in <filename unknown>:0
> at DbMetal.Generator.Implementation.SchemaLoaderFactory.Load
> (DbMetal.Parameters parameters, System.Type dbLinqSchemaLoaderType,
> System.Type databaseConnectionType, System.Type sqlDialectType) [0x00000] in
> <filename unknown>:0
Odd; it apparently doesn't like your connection string. Why, I can't
say. Perhaps it doesn't like using ':' as a delimiter in your
"Server:localhost" section?
I also find it troubling that it's going into ByteFX.Data, which implies
to me that it's not finding your MySql.Data provider (which somewhat
makes sense as you mis-typed the MySql.Data provider, above).
- Jon
More information about the Mono-list
mailing list