Is it possible to use Sqlite inside a portable class library ? I nedd to share code between a win store app as well as a web application , both of which uses sqlite as DB. I am stuck in adding windows reference to my PCL..
In short no, from what I've read, this question provides a more detailed explanation:
using SQLite inside portable class library
Related
I can't seem to figure out how to get F# TypeProviders to work in a Windows Store (C#) app.
As far as I can tell, TypeProviders can only be used in an assembly targeting the full .NET Framework, whereas Windows Store apps must target .NET Portable.
I have created an F# assembly and referenced the F# TypeProviders library, however when attempting to reference this assembly from my Windows Store app, I receive an error stating that the library could not be referenced.
Is there any way around this? I want to use F# TypeProviders to reference various data sources and then use the generated code/types in my Windows Store app. Anyone have experience with this?
UPDATE:
Just to be clear, I am asking if there is a way to use the standard F# TypeProviders (such as WsdlService) in a Windows Store App?
Looking at the other assemblies FSharp.Data.TypeProviders.dll is referencing, I don't think there is a way around this. Since most type providers are used for accessing a database in one way or another (ADO.NET, LINQ to SQL, EF), it references System.Data.dll which is not available in WinRT.
The only data sources supported by built-in type providers that can be used in WinRT are web services and OData services. Their type providers maybe could be supported in a WinRT project if they were implemented in a separate library, but not in their current implementation.
Type providers are design/compile time facility. It should work in Portable library profile. It is maybe dependent on how is type provider library implemented, but in general, it should work.
For more info see F# type providers with Portable Library
I know the Wordnet webpage cites that it comes with a C interface included. However, I am having significant trouble adding it to my project. My question is two fold.
First: Does a machine need to have wordnet installed to utilize the API (or can the data be read a runtime from the dict files? and thus distributed to machines that do not have wordnet installed)
Second: How can you include Wordnet in a C project. I've tried adding the source files directly, but it crashes on init(). I've stepped through the debugger and it looks like it is looking to load the files from my local drive rather than the included files in the project. Is there a way to prevent this for machines that do not have Wordnet installed (from part 1).
Thank you for the help,
Unless I'm mistaken and you're referring to a different WordNet, there has been a Cocoa front-end available for years here.
Just found this today. Might be helpful, as it only requires adding the sqlite.db file of WordNet and provides a super super thin Objective-C wrapper on the sqlite call to talk to the database. Using this as a template for your understanding should allow you to extend it to allow various queries.
https://gist.github.com/atduskgreg/c30a5fb167f4c35d6f89
EDIT: With the above example, you can see the format the query takes. With that knowledge, you could grab the sqlite file for the WordNet database from:
https://code.google.com/p/synonym/downloads/detail?name=wordnet30.1.tar.gz&can=2&q=
then either just use the C calls for sqlite or pick a more robust Objective-C wrapper like:
https://github.com/ccgus/fmdb
I recently upgraded to Flash Builder 4.5 for PHP since Iām working on a big PHP/Flex project and thought that it would be easier to integrate the two.
What do you know? The feature that generate the php class to feed a flex/PHP service trough AMF is appears to be missing!
Time to downgrade or am I overlooking something?
I believe it's still there, but that feature should only be used for building a test application. It breaks a lot of best practices such as creating the connection in the class (it should be injected or retrieved from an outside class that manages the DB) and it puts the database definition info in the class (username, password, etc.). I believe that when you use that feature that a popup tells you that it is not intended for production use. When building a service class it is best to define your classes based off of the functionality you need to provide.
I've been doing some research on finding an embedded database to be used with Silverlight/isolated storage. Everyone says SQLite will not work with Silverlight due to unmanaged code.
From my experience there is just a dll named System.Data.SQLite.DLL which I believe I either got from installed SQLite.NET or from the NHibernate build.
When configuring in c# code you can use a file based database and just specify a file to use.
So my question is where is the unmanaged code? And why wouldn't using file based database and writing it to isolated storage work? And now that Silverlight 4 supports OOB does that have any impact on this?
Answers appreciated ahead of time.
Regards
I'm not sure what features you need, but you might also want to check out Sterling
Sterling is a lightweight
object-oriented database
implementation for Silverlight and
Windows Phone 7 that works with your
existing class structures. Sterling
supports full LINQ to Object queries
over keys and indexes for fast
retrieval of information from large
data sets.
Here is the introduction blog post about this project.
Note: At the time of this post Sterling has not been released. You can download the source code though.
SQLite as downloadable from sqlite.org is written in ANSI-C (see the features page). That's what most people are thinking of when you say "SQLite" and it's definitely unmanaged code.
System.Data.SQLite.DLL appears to be "An open source ADO.NET provider for the SQLite database engine" and is "a complete drop-in replacement for the original sqlite3.dll (you can even rename it to sqlite3.dll if you're using it natively)" which seems pretty cool.
However, reading on, I see "The desktop native SQLite library and the ADO.NET wrapper are combined into a single mixed assembly" which seems to be saying that the DLL contains both managed and unmanaged code, which may be a problem.
There is no ADO.Net in Silverlight 4
I want to update/upgrade the standard Leopard install of Sqlite3 to >3.5 to use the new sqlite_xxx_v2 methods from a Cocoa project.
I can't seem to find any information on how to do this. Does anyone have any tips or a site that outlines the update procedure.
Also is 3.5+ supported on the iPhone. I understand it's embedded so shouldn't be an issue...
What you want to do is grab the amalgamation sources from http://sqlite.org/download.html . Then just compile that into / add it to your project. You don't want to replace the system sqlite- that'll have unintended consequences in other applications. Plus, I'm pretty sure the system sqlite isn't a stock sqlite... Apple has probably made their own modifications to it that core data relies on.
You can read up on the amalgamation stuff here: http://sqlite.org/amalgamation.html , but in short: '''The amalgamation is a single C code file, named "sqlite3.c", that contains all C code for the core SQLite library and the FTS3 and RTREE extensions'''
I'd also suggest not using the sqlite calls directly, they weren't designed to be used that way (says the author of sqlite). Instead, there are a number of cocoa wrappers out there, including fmdb: http://code.google.com/p/flycode/source/browse/trunk/fmdb/ (which I wrote) :)
-gus
You don't really want to upgrade the system version of SQLite on Mac OS X. The reason is that all Mac OS X software is qualified against the versions of the packages that it includes, as built by Apple's build process. Installing a different version of a package, or even building the same version yourself but doing so slightly differently than Apple does, may result in a system that behaves unexpectedly.
Finally, if you embed a newer version of SQLite ā or any Open Source library or framework included with Mac OS X ā into your own application, you should be sure to integrate the Darwin changes for it from Apple's public source site. That way you can be sure you'll get as close to the same behavior as possible from the library you've built yourself as the version Apple ships, which is especially important when it comes to functionality like file locking in databases.
I don't believe i've updated my version, but it's currently at 3.4.2, and i'm able to use the new methods with the current version.
And i'm running 10.5.5 with the latest (public) iPhone SDK.
It would likely be easier to just drop the library into your project and link it in from there.