Pool di connessioni al database PowerBuilder? Come
-
02-07-2019 - |
Domanda
Come creare un pool di connessioni al database in PowerBuilder (v9 +) con ...
- ... ODBC?
- ... SQL Server?
- ... Oracle?
Soluzione
Sfortunatamente, almeno con PB 9, non puoi nativamente . PB è sempre stato uno strumento di sviluppo a due livelli. Tuttavia, se si utilizza il supporto di WebServices avviato in PB 9, è possibile aggirare questa limitazione invocando WebServices su un appServer con pool di connessioni. Non ho ancora giocato con PB 11.5 BTW. Potrebbe essere diverso lì.
Jason
Altri suggerimenti
A questo rischio di autopromozione, questi potrebbero farti iniziare per Oracle:
Se vai su Sybase Manuals (intuitivo, eh?), vai al manuale Connessione al tuo database per la versione che stai guardando, una ricerca di " pool " può essere produttivo. Guardando la mia copia locale per 11.5, posso vedere i riferimenti a SNC (MS) e ODBC.
Per quanto riguarda " non nativo " approcci, suppongo che Jason si sarebbe potuto riferire al pool di connessioni con un server delle applicazioni, quindi a ottenere i tuoi dati.
Buona fortuna.
Con PowerBuilder versione 9 e successive utilizzando il driver nativo Oracle e connettendosi ai database Oracle 9i e versioni successive, è possibile indicare a Oracle di mantenere le connessioni in un pool utilizzando il parametro database CnnPool = 'Sì' :
Informazioni aggiuntive dai documenti PB 11.1: http: // infocenter .sybase.com / help / index.jsp? topic = / com.sybase.dc33820_1110 / html / dbparm / BJEBJADI.htm
Non ci credo
CnnPool = 'Sì'
è stato supportato ufficialmente in PB 9.
Non sono sicuro che la maggior parte degli sviluppatori PB abbia familiarità con il modo di gestire i pool.
L'approccio di ASP.Net è semplice e diretto almeno rispetto alla mia esperienza con alcuni server di app Java. (Per favore, non iniziare una guerra alla fiamma sull'ultima frase, ho detto la mia esperienza).
Ho scritto un " server " applicazione che ha ricevuto datastore PB eseguiti per ds.retrieve () e ds.update () e passati i dati all'app PB client. Era un modo per riunirsi. L'applicazione server avrebbe aperto più connessioni ... L'ho fatto in PB 8 (c'è un libro là fuori da qualche parte). Non consiglierei questo approccio ... molto codice.
In PB 11.x, ci sono alcuni nuovi approcci interessanti che dovresti prendere in considerazione.
@Jason Vogel ...
Hai detto che non posso fare nativamente ... quindi esiste un modo alternativo per farlo?
/ * Dichiara come variabile di istanza * /
n_to_server i_to_server // Transaction Object alternativo a SQLCA, i_to_server è un nome personalizzato come n_to_server
/ * Installa l'oggetto connessione * /
i_to_server = CREATE transazione // È stato dichiarato nelle variabili di istanza da n_to_server
i_to_server.DBMS = " ODBC "
i_to_server.AutoCommit = TRUE
i_to_server.DBParm = " ConnectString = 'DSN = SourceServer; UID = nome utente; PWD = password' "
CONNETTI USANDO i_to_server;
SELEZIONA @@ trancount INTO: li_TranCount
DA sysobjects
WHERE name = 'sysobjects'
USANDO i_to_server; // Deve avere USING nelle transazioni che non utilizzano SQLCA (la transazione nativa)