+0.02 - this code:

public void insertlistNews(String city,*byte[] newsImageUrl*, String
 publishDate, String expiredDate){
[snip]
          + " VALUES ('" + city + "',*'" + imageUrl + "'*,'" + publishDate+
 "','" + expiredDate"');");

appends a byte[] to a String.

This is the same as appending String.valueOf(imageUri), which calls byte[].toString, which *does not* return the contents of the array, but rather its type marker and address - which does look like "[...@437c1338" and so on.

If you want to insert byte[] values into the database, use one of:

- SQLiteStatement and bindBlob(int index, byte[] value)

- DatabaseUtils.InsertHelper and bind(int index, byte[] value)

- ContentValues, put(String key, byte[] value), and SQLiteDatabase.insert()

If you mean to insert the URL as a string, make sure you use a String variable for the URL to build your SQL statement.

Perhaps you are trying to do both (your code sample uses two different variable names: newsImageUrl and imageUrl), so do each one as described above.

-- Kostya

24.12.2010 20:13, DanH ?????:
What's varying?  The data won't be read back into the same address,
but into a new byte array, and [...@xxxxxxxx is just a byte array at a
certain address.  Dump a few bytes of the arrays (eg, first and last
10) so you can compare their contents.

On Dec 22, 4:46 pm, Amiral<[email protected]>  wrote:
Hi all.

I would like to save an image from Internet to database, I've tried to
convert images into bytearray and store them in a database.

Here my code:

this is to created table:
myDB.execSQL("CREATE TABLE IF NOT EXISTS News (Title VARCHAR(20),
imageUrl BLOB, publishDate TIMESTAMP, expiredDate TIMESTAMP);");

and this is my Method to Insert table:

public void insertlistNews(String city,byte[] newsImageUrl, String
publishDate, String expiredDate){
try {
  myDB.execSQL("INSERT INTO News
(title,imageUrl,publishDate,expiredDate)"
         + " VALUES ('" + city + "','" + imageUrl + "','" + publishDate+
"','" + expiredDate"');");
         Log.i("Android", "Table created");} catch (Exception e) {

         Log.i("Android", "No Table created" + e.getMessage());
         }
         //for check bytearray in database
         Log.i("Android", "Image saved in database: "+ urlFrontImage);

}

The last my method for getNews from db:

public ArrayList getAllNews() {
  ArrayList news = new ArrayList<News>();
  Cursor c = myDB.rawQuery("SELECT
title,imageUrl,publishDate,expiredDate
         FROM News WHERE publishedDate<= DATETIME() and expiredDate>=
DATETIME() ORDER BY publishedDate DESC;", null);
  if (c != null) {
   c.moveToFirst();
   int count = 0;
   while (c.moveToNext()) {
    if (count == 0)
       c.moveToFirst();
    String title = c.getString(0);
    byte[] image = c.getBlob(1);
    String publishDate = c.getString(2);
    String expiredDate = c.getString(3);

    NewsItem nl = new NewsItem(title, image, publishDate, expiredDate);

    Log.i("Android", "Image get from db: "+image);
    news.add(nl);
    count++;
   }
  }
return news;

}

when I run it the newsimage not appear and the Log like this:

12-22 00:11:49.362: INFO/Android(307): Image saved in database:
[...@437cbdb8
12-22 00:11:51.052: INFO/Android(307): Image saved in database:
[...@437db710
12-22 00:11:51.862: INFO/Android(307): Image saved in database:
[...@437c1338

12-22 00:12:07.962: INFO/Android(307): Image get from db: [...@4382d370
12-22 00:12:07.982: INFO/Android(307): Image get from db db:
[...@4382d9c0
12-22 00:12:07.992: INFO/Android(307): Image get from db: [...@4382e0e0

why results can vary between insert and getNews?

--
Best Regards

=====
Amiral


--
Kostya Vasilyev -- WiFi Manager + pretty widget -- http://kmansoft.wordpress.com

--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to