Avatar billede repsak Nybegynder
16. april 2006 - 20:41 Der er 6 kommentarer og
1 løsning

Fejl med binære data

Hej, jeg skal indsætte binære data i min MySql database, men nedenstående virker ikke med ODBC. Når jeg bruger MySQL provideren virker det fint, men den kan jeg desværre ikke bruge på produktions miljøet.

Jeg får fejlen
OdbcException
ERROR [HYT00] [MySQL][ODBC 3.51 Driver][mysqld-4.0.21-nt]Column 'content' cannot be null.

Koden er:
public static int Create(Document doc){
    if(doc.FileData == null)
        throw new NullReferenceException("Cannot create a document without filedata");

    string sql = string.Format(@"
            INSERT INTO tDocument(guid, content)
            VALUES({0}, @filedata);",
        SqlEncode.NewGuid()
    );

    using(DbHandler db_handler = DbHandlerFactory.Create()){
        OdbcParameter param_data = db_handler.Command.CreateParameter() as OdbcParameter;
        param_data.ParameterName = "@filedata";
        param_data.OdbcType = OdbcType.VarBinary;
        param_data.Size = doc.FileData.Length;
        param_data.Direction = ParameterDirection.Input;
        param_data.Value = doc.FileData;

        db_handler.Command.Parameters.Add(param_data);
        db_handler.ExecuteNonQuery(sql, true);

        sql = "SELECT @@identity;";
        int id = db_handler.ExecuteScalarInt(sql);
        doc.Id = id;
        return id;
    }
}
Avatar billede arne_v Ekspert
16. april 2006 - 21:06 #1
prøv:

string sql = string.Format(@"
            INSERT INTO tDocument(guid, content)
            VALUES({0}, ?);",
Avatar billede arne_v Ekspert
16. april 2006 - 21:07 #2
og jeg forstår ikke hvorfor du ikke kan bruge MySQL Connector for .NET - det er
jo ægte .NET og derfor XCOPY deployment

den skal ikke installeres på serveren - bare upload MySql.Data.dll og voila
Avatar billede repsak Nybegynder
17. april 2006 - 11:34 #3
Hej Arne, det virker sørme... Det er ellers ikke det som står i doc'en. Fedt!

Jeg giver dig helt ret, mit problem er blot at jeg ikke har adgang til serveren, og så går der jo politik i den. Derfor er jeg nødt til at bruge ODBC classic :(

Svar :)
Avatar billede repsak Nybegynder
17. april 2006 - 11:35 #4
nåeh... nu forstår jeg hvad du mener... :)

Ja, det er faktisk et godt spørgsmål... hehe. Det virkede ikke da jeg prøvede trods adskillige forsøg på connectionstringen
Avatar billede arne_v Ekspert
17. april 2006 - 12:49 #5
svar
Avatar billede arne_v Ekspert
17. april 2006 - 12:50 #6
det bør kunne fungere !

kan du ikke teste lidt med en MySqlHelloWorld.aspx uden at generere nogen ?
Avatar billede repsak Nybegynder
17. april 2006 - 15:55 #7
Jo, men jeg har allerede brugt en del tid på at teste helloworld. Det virker i alle andre webapplikationer jeg har, men ikke denne. ...og det er ikke prioriteret så højt løse dette problem lige nu :)

Tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester