【问题标题】:In Blackberry,How to Store image in Database?在黑莓中,如何将图像存储在数据库中?
【发布时间】:2023-03-09 21:19:01
【问题描述】:

我想将图像存储到 Blackberry 中的 SQLite 数据库中。那我该怎么办??我想从服务器获取图像,然后想存储在数据库中。我完美地从服务器获取图像并将图像作为字节 [] 存储在数据库中。但我无法获取它。 所以请帮助我...

将代码编辑到问题中,以便阅读:

try {
   Statement st = db.createStatement("SELECT * FROM Image");
   st.prepare(); 
   Cursor c = st.getCursor();
   Row r;
   while(c.next()) {
      r = c.getRow();
      byte[] pic=r.getBlobBytes(0);
      st.close();
      EncodedImage _bmap = EncodedImage.createEncodedImage(pic, 0, pic.length);
      BitmapField bmf=new BitmapField(_bmap.getBitmap());
      add(bmf);
   }
} catch ( Exception e ) {
   System.out.println( e.getMessage() );
   e.printStackTrace();
}

【问题讨论】:

  • 您可以将图像存储为 SQL BLOB。 Take a look at this thread for a start,如果您仍需要帮助,请告诉我们。
  • 你确定..非常感谢 4 ur rep...
  • 嘿,我将图像作为字节数组插入,当我获取时它存储在 db..bt 中,它显示 nthng..
  • 查看我的代码.. try { Statement st = db.createStatement("SELECT * FROM Image"); st.prepare();光标 c = st.getCursor();行 r; while(c.next()) { r = c.getRow();字节[] pic=r.getBlobBytes(0); st.close(); EncodedImage _bmap = EncodedImage.createEncodedImage(pic, 0, pic.length); BitmapField bmf=new BitmapField(_bmap.getBitmap());添加(bmf); } } catch ( 异常 e ) { System.out.println( e.getMessage() ); e.printStackTrace(); }
  • 编辑您的问题,并在其中放入任何其他代码,格式化。在下面的 cmets 中很难阅读。谢谢!

标签: sqlite blackberry


【解决方案1】:

您的代码没有提及 blob 列的名称,因此我将其命名为 image_data。像这样的东西应该适用于插入:

EncodedImage pic = getImage();
byte [] imageBytes = pic.getData();
Statement st = db.createStatement("INSERT INTO Image (image_data) values (?)");
st.prepare();
st.bind(1, imageBytes);
st.execute();

对于检索,显式命名列可能会有所帮助,因为您当前的代码假定 blob 始终是表架构中的第一列。此外,您不应关闭循环中的语句,因为这将阻止读取第一张图片之后的任何内容:

Statement st = db.createStatement("SELECT image_data FROM Image");
st.prepare(); 
Cursor c = st.getCursor();
Row r;
while(c.next()) {
   r = c.getRow();
   byte[] pic=r.getBlobBytes(0);
   EncodedImage _bmap = EncodedImage.createEncodedImage(pic, 0, pic.length);
   BitmapField bmf=new BitmapField(_bmap.getBitmap());
   add(bmf);
}
st.close();  // moved this line out of the loop

【讨论】:

猜你喜欢
  • 2011-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-10
  • 2012-06-08
  • 1970-01-01
相关资源
最近更新 更多