Cara,
faltou um detalhe importante, você tem que gravar o caminho onde você
guardou banco de dados e isso você pode fazer com a API EncryptedLocalStore,
que grava uma variável em objeto gravado nos arquivos locais da aplicação.
ex.:
private function init():void
{
var storedDBPath:ByteArray =
EncryptedLocalStore.getItem("dataBaseFile");
if(storedDBPath)
{
_databaseFile =
File.applicationStorageDirectory.resolvePath(storedDBPath.readUTFBytes(storedDBPath.length));
if(_databaseFile.exists)
{
connectDataBase();
}
}
}
private function createDatabase():void
{
_databaseFile = new File();
_databaseFile.browseForDirectory("Escolha o local do arquivo
do banco de dados.");
_databaseFile.addEventListener(Event.SELECT,openDatabase);
}
private function openDatabase(event:Event):void
{
_databaseFile = new File(_databaseFile.nativePath+
File.separator +"promedic.db");
connectDataBase();
}
private function connectDataBase():void
{
try
{
var sqlConnection:SQLConnection = new SQLConnection();
sqlConnection.addEventListener(SQLEvent.OPEN,
function(event:SQLEvent):void
{
dispatchEvent(event);
var storedDBPath:ByteArray = new ByteArray();
storedDBPath.writeUTFBytes(_databaseFile.nativePath);
EncryptedLocalStore.setItem("dataBaseFile",storedDBPath);
});
sqlConnection.open(_databaseFile, SQLMode.CREATE, false,
1024);
Context.setAttribute("sqlConnection", sqlConnection);
}
catch (error:SQLError)
{
if (error.errorID ==
EncryptionKeyGenerator.PASSWORD_ERROR_ID)
{
statusMessage.text = "Invalid password";
}
else
{
statusMessage.text = "Cannot open the database " +
error.message;
}
}
}
Tiago Lopes : Desenvolvedor Flex e Flash
Fone: 85 8896.4855
www.tiagolopes.pro.br
2009/7/15 Tiago Lopes <[email protected]>
> Cara,
> eu já passei por isso... como eu resolvi, pra usar banco de dados no AIR
> você precisa de um File pra carregar o banco, dai quando você vai criar o
> banco você pode dar um Browse no arquivo ou pasta desejado.
>
> ex.:
>
> private function createDatabase():void
> {
> _databaseFile = new File();
> _databaseFile.browseForDirectory("Escolha o local do arquivo do banco de
> dados.");
> _databaseFile.addEventListener(Event.SELECT,openDatabase);
> }
>
> private function openDatabase(event:Event):void
> {
> _databaseFile = new File(_databaseFile.nativePath+ File.separator
> +"promedic.db");
>
> connectDataBase();
> }
>
> private function connectDataBase():void
> {
> var sqlConnection:SQLConnection = new SQLConnection();
> sqlConnection.open(_databaseFile, SQLMode.CREATE, false, 1024);
> }
>
>
> ps:
> onde eu coloquei
> _databaseFile = new File(_databaseFile.nativePath+ File.separator
> +"promedic.db");
> o "_databaseFile.nativePath" você pode substituir pela String do caminho
> que você quiser, eu fiz dessa maneira pq eu estou desenvolvendo no Mac e a
> aplicação será utilizada no Windows e os sistemas de arquivos são
> diferentes, além de que nessa aplicação o usuário poderá escolher onde
> gravar o banco de dados.
>
> Tiago Lopes : Desenvolvedor Flex e Flash
> Fone: 85 8896.4855
> www.tiagolopes.pro.br
>
>
> 2009/7/15 Oswaldo Gusmao <[email protected]>
>
>
>> Alguem sabe como salvar um banco de dados do AIR, em um diretorio
>> escolhido por min.
>> exemplo c:/App teste/BD.bd
>> o Air tem sua opções pre definidas, mais eu queria salvar o bd em
>> outro lugar.
>>
>> Alguem sabe?
>>
>> >>
>>
>
--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---