Re: [sqlite] C# Dynamic data type

2012-08-08 Thread Adam DeVita
Interesting idea. Thanks.

Adam

On Tue, Aug 7, 2012 at 12:07 PM, Black, Michael (IS)
michael.bla...@ngc.com wrote:
 You can use sscanf to determine data type...I've done it before using a 
 method that's not obvious...

 You parse from most restrictive to least restrictive format like this...this 
 will accept any valid float format including scientific notation.

 #include stdio.h

 enum {UNKNOWN, FLOAT, INT, STRING};

 int datatype(char *s)
 {
   long i;
   double f;
   char buf[4096];
   int n;
   n = sscanf(s,%d%s,i,buf);
   if (n == 1) {
 printf(INT\n);
 return INT;
   }
   n = sscanf(s,%lg%s,f,buf);
   if (n == 1) {
 printf(FLOAT\n);
 return FLOAT;
   }
   n = sscanf(s,%s,buf);
   if (n == 1) {
 printf(STRING\n);
 return STRING;
   }
   else {
  printf(UNKNOWN\n);
 return UNKNOWN; // should never get here
   }
 }

 main()
 {
   char *line1=1234;
   char *line2=1234.5;
   char *line3=x1234.5;
   datatype(line1);
   datatype(line2);
   datatype(line3);
 }
 ~

 Michael D. Black
 Senior Scientist
 Advanced Analytics Directorate
 Advanced GEOINT Solutions Operating Unit
 Northrop Grumman Information Systems

 
 From: sqlite-users-boun...@sqlite.org [sqlite-users-boun...@sqlite.org] on 
 behalf of Adam DeVita [adev...@verifeye.com]
 Sent: Tuesday, August 07, 2012 10:26 AM
 To: General Discussion of SQLite Database
 Subject: EXT :[sqlite] C# Dynamic data type

 Good day,

 I've been reading a bit of conflicted stuff online in terms of data type.

 The most basic question, in  C#, is can you easily determine the data
 type of the Nth entry in a column.

 {Ex: Create table A( x TEXT, y )
  ... a few  inserts, binding a float, then a string, then an int into y..

  select x,y from A
 check the type of y before retrieving a value from it.
 }


 The docs for  SQLiteDataReader.GetFieldType() seems to read as if it
 will return the column affinity.

 regards,
 Adam
 ___
 sqlite-users mailing list
 sqlite-users@sqlite.org
 http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
 ___
 sqlite-users mailing list
 sqlite-users@sqlite.org
 http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users



-- 
VerifEye Technologies Inc.
905-948-0015x245
151 Whitehall Dr, Unit 2
Markham ON, L3R 9T1
Canada
___
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users


[sqlite] C# Dynamic data type

2012-08-07 Thread Adam DeVita
Good day,

I've been reading a bit of conflicted stuff online in terms of data type.

The most basic question, in  C#, is can you easily determine the data
type of the Nth entry in a column.

{Ex: Create table A( x TEXT, y )
 ... a few  inserts, binding a float, then a string, then an int into y..

 select x,y from A
check the type of y before retrieving a value from it.
}


The docs for  SQLiteDataReader.GetFieldType() seems to read as if it
will return the column affinity.

regards,
Adam
___
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users


Re: [sqlite] C# Dynamic data type

2012-08-07 Thread Black, Michael (IS)
You can use sscanf to determine data type...I've done it before using a method 
that's not obvious...

You parse from most restrictive to least restrictive format like this...this 
will accept any valid float format including scientific notation.

#include stdio.h

enum {UNKNOWN, FLOAT, INT, STRING};

int datatype(char *s)
{
  long i;
  double f;
  char buf[4096];
  int n;
  n = sscanf(s,%d%s,i,buf);
  if (n == 1) {
printf(INT\n);
return INT;
  }
  n = sscanf(s,%lg%s,f,buf);
  if (n == 1) {
printf(FLOAT\n);
return FLOAT;
  }
  n = sscanf(s,%s,buf);
  if (n == 1) {
printf(STRING\n);
return STRING;
  }
  else {
 printf(UNKNOWN\n);
return UNKNOWN; // should never get here
  }
}

main()
{
  char *line1=1234;
  char *line2=1234.5;
  char *line3=x1234.5;
  datatype(line1);
  datatype(line2);
  datatype(line3);
}
~  

Michael D. Black
Senior Scientist
Advanced Analytics Directorate
Advanced GEOINT Solutions Operating Unit
Northrop Grumman Information Systems


From: sqlite-users-boun...@sqlite.org [sqlite-users-boun...@sqlite.org] on 
behalf of Adam DeVita [adev...@verifeye.com]
Sent: Tuesday, August 07, 2012 10:26 AM
To: General Discussion of SQLite Database
Subject: EXT :[sqlite] C# Dynamic data type

Good day,

I've been reading a bit of conflicted stuff online in terms of data type.

The most basic question, in  C#, is can you easily determine the data
type of the Nth entry in a column.

{Ex: Create table A( x TEXT, y )
 ... a few  inserts, binding a float, then a string, then an int into y..

 select x,y from A
check the type of y before retrieving a value from it.
}


The docs for  SQLiteDataReader.GetFieldType() seems to read as if it
will return the column affinity.

regards,
Adam
___
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
___
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users