![]() | ![]() Products ![]() ![]() ![]() ![]() |
Home » Technical Support » ElevateDB Technical Support » Support Forums » ElevateDB SQL » View Thread |
Messages 1 to 8 of 8 total |
![]() |
Sun, Apr 6 2008 4:06 AM | Permanent Link |
Uli Becker | Hi,
I want to create a table in a memory-database if it doesn't exist. Use MemoryDB is obviously not allowed in procedures. So: how can I do that? BEGIN DECLARE Result CURSOR with Return for Stmt; Prepare Stmt from 'select name from MemoryDb.Information.Tables where name = ''PrintRechnungenCopies'''; Open Result; if RowsAffected(Stmt) = 1 then Execute Immediate 'delete from MemoryDB.PrintRechnungenCopies'; ELSE USE MemoryDB; <------------------------------------------------------------- Execute Immediate 'Create Table PrintRechnungenCopies as select * from Informa.PrintRechnungen'; end if; END Thanks. Uli. |
Sun, Apr 6 2008 5:37 AM | Permanent Link |
Roy Lambert NLH Associates ![]() | Uli
I learnt this one a while back ![]() Set the databasename at the component level to the memory database then reference all other db's you use within the script apart from the memory db. So your USE MemoryDB; is there - sort of - but can't be set from within a procedure. Rather badly explained but I hope it helps. Roy Lambert [Team Elevate] |
Sun, Apr 6 2008 5:42 AM | Permanent Link |
Roy Lambert NLH Associates ![]() | Uli
I've just read another post from Tim and USE database is there, so I think we need Tim to clarify. Roy Lambert [Team Elevate] |
Sun, Apr 6 2008 6:33 AM | Permanent Link |
Uli Becker | Roy,
> I learnt this one a while back ![]() > So your USE MemoryDB; is there - sort of - but can't be set from within a procedure. I know all that. The point is that it must be possible to create an In-Memory-Table within a procedure of a non-memory database. Tim will tell us how it works, I hope. Regards Uli |
Mon, Apr 7 2008 6:24 AM | Permanent Link |
"Jose Eduardo Helminsky" | Uli
I had asked the same question. See the thread DBISAM -> ElevateDB posted in NG elevatedb.general (04/04/08) Eduardo |
Mon, Apr 7 2008 7:10 AM | Permanent Link |
Uli Becker | Jose,
> I had asked the same question. > See the thread DBISAM -> ElevateDB posted in NG elevatedb.general (04/04/08) I read that, but the difference is, that you are using a script and want to use a procedure. ![]() Regards Uli |
Mon, Apr 7 2008 1:04 PM | Permanent Link |
Tim Young [Elevate Software] Elevate Software, Inc. ![]() | Uli,
<< I know all that. The point is that it must be possible to create an In-Memory-Table within a procedure of a non-memory database.Tim will tell us how it works, I hope. >> No, you cannot do so. For stored procedures, you should use a temporary table instead of an in-memory table if you want a temporary table. Any objects contained with a specific database and catalog can only access objects within that same database catalog. Scripts and jobs are not catalog-level objects, so they can use the USE statement to access multiple databases. The upcoming session-level procedures and functions that Roy asked for will also be able to use the USE statement. -- Tim Young Elevate Software www.elevatesoft.com |
Tue, Apr 8 2008 6:28 AM | Permanent Link |
"Uli Becker" | Tim,
> No, you cannot do so. For stored procedures, you should use a temporary > table instead of an in-memory table if you want a temporary table. Any > objects contained with a specific database and catalog can only access > objects within that same database catalog. Thanks for the clarification. Regards Uli |
This web page was last updated on Monday, July 14, 2025 at 02:20 AM | Privacy Policy![]() © 2025 Elevate Software, Inc. All Rights Reserved Questions or comments ? ![]() |