Thema: Prism Blobs lesen .NET

Einzelnen Beitrag anzeigen

Generalissimo

Registriert seit: 28. Aug 2003
187 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: Blobs lesen .NET

  Alt 11. Mär 2005, 15:21
Zitat von vsti:
@Generalissimo
wie man sowas in ne assembly packt weiß ich auch nicht ^^
1. Klassenbibliothek anlegen
2. Klasse BlobDataHandling anlegen
3. Funktion GetBlobData definieren

Code:
public bool GetBlobData(string sFileName)
{
SqlConnection con = new SqlConnection("Server=Darkover;uid=<username>;pwd=<strong password>;database=northwind");
SqlDataAdapter da = new SqlDataAdapter("Select * From MyImages", con);
SqlCommandBuilder MyCB = new SqlCommandBuilder(da);
DataSet ds = new DataSet("MyImages");

byte[] MyData= new byte[0];

da.Fill(ds, "MyImages");
DataRow myRow;
myRow=ds.Tables["MyImages"].Rows[0];

MyData = (byte[])myRow["imgField"];
int ArraySize = new int();
ArraySize = MyData.GetUpperBound(0);

FileStream fs = new FileStream(sFileName, FileMode.OpenOrCreate, FileAccess.Write);
fs.Write(MyData, 0,ArraySize);
fs.Close();
}
4. Funktion SetBlobData(string sFileName) definieren

Code:
public bool SetBlobData(string sFileName)
{
SqlConnection con = new SqlConnection("Server=Darkover;uid=<username>;pwd=<strong password>;database=northwind");
SqlDataAdapter da = new SqlDataAdapter("Select * From MyImages", con);
SqlCommandBuilder MyCB = new SqlCommandBuilder(da);
DataSet ds = new DataSet("MyImages");

da.MissingSchemaAction = MissingSchemaAction.AddWithKey;
FileStream fs = new FileStream(sFileName,FileMode.OpenOrCreate, FileAccess.Read);

byte[] MyData= new byte[fs.Length];
fs.Read(MyData, 0, System.Convert.ToInt32(fs.Length));

fs.Close();

da.Fill(ds,"MyImages");

DataRow myRow;
myRow=ds.Tables["MyImages"].NewRow();

myRow["Description"] = "This would be description text";
myRow["imgField"] = MyData;
ds.Tables["MyImages"].Rows.Add(myRow);
da.Update(ds, "MyImages");

con.Close();

}
5 Kompilieren (#Develop ist zur Erstellung super) und als Reference das ganze in Delphi erfasen

Natürlich müssten noch paar Dinge angepasst werden. So müssten Feldnamen angepasst werden. Eventuell auch auf CommandBuilder verzichten, da es sich ja um ein größeres Projekt handelt.
  Mit Zitat antworten Zitat