Consiglio... su dll e accesso ai dati

lunedì 09 agosto 2004 - 18.52

LeonDom Profilo | Senior Member

Salve,
volevo un parere-consiglio da Voi su un problema che sicuramente avete già incontrato.

Ho parecchi dati da caricarmi in base a delle ricerche che devo fare più volte ed in pagine differenti.
Su diverse pagine interrogherò gli stessi database con modalità differenti, ho un "amore" particolare per le .dll, ma poca esperienza :(
Voi mettereste l'accesso ai dati e le varie ricerche in questa classe, in alcune funzioni che interroghereste più volte? Oppure fareste in un altro modo?

Grazie a tutti

LeonDom

trinity Profilo | Guru

Ciao,
io ed il mio collega staimo realizzando un portale in aspx e ci è capitato di avere delle istruzioni che vengono ripetute frequentemente nel sito, le quali vanno a leggere e ricercare dati un database, Per evitare di stare sempre a scrivere lo stesso codice io ho creato in vb net una dll che mi racchiudesse il codice che dovevamo sempre ripotare nelle pagine aspx. A questo punto noi richiamiamo quando serve solo il nome della dll e il gioco è fatto, ovviamente la dobbiamo prima importare..
Quindi se il codice è sempre lo steso ti consiglio di creare una dll altrimenti no.

Ciao
Fabio

LeonDom Profilo | Senior Member

Data la mia poca esperienza, volevo sapere se ero sullla buona strada....

Altrimenti ci sono altre? Le ho vagliate un po' tutte e credo che sia la più "pulita"... per codice e tempo....

LeonDom

trinity Profilo | Guru

Secondo me la creazione di una dll è molto positiva..

LeonDom Profilo | Senior Member

Lavoraccio... i dati che devo controllare sono tantissimi. Query su 1.000.000 di record circa sono pesantissime, un db fatto di M**a, l'unico vantaggio è non riscrivere il codice più volte, ma per i tempi di attesa non credo di poter far meglio, quelli sono i record e quelli devo consultare. Ci sono altre soluzioni secondo te per velocizzare il tutto?

Grazie

LeonDom

trinity Profilo | Guru

Dipende dalle ricerche che devi svolgere, se utilizzi il codice sql potresti creare una query di Select con la condizione where e stabilire quali record andare a ricercare e quindi far visualizzare. Non è etico fare una visualizzazione sequenziale di tutti i record, di solito viene sempre fatta una ricerca indicizzata nel database.

Ciao

LeonDom Profilo | Senior Member

Faccio delle SELECT con WHERE indicizzate in alcune StoredProc a cui passo dei parametri etc etc..., il fatto è che i record e il tempo di attesa è lungo.... ma credo che non posso fare altro... alla fine i record sono quelli... posso solo inventare qualche magia.

trinity Profilo | Guru

Scusami ma che database utilizzi, solo per curiosità, Io utilizzo Mysql e prima di sceglierlo ho fatto delle mie personali prove di velocità sia di inserimento che di ricerca. Quest'ultima è stata realizzata con una semplice select * from nome_tabella su un numero di campi che si aggirava intorno a circa 25.000.000 di record e se ben ricord il tempo di ricerca è stato di 15 sec. circa quindi deduco che 1.000.000 potrebbe impiegarci molto meno tempo. Devo dire però che la mia tabella era composta da soli due campi(cognome,nome)

Ciao

LeonDom Profilo | Senior Member

I dati devono essere estratti da dei vecchi Access2000 che non posso né convertire in SQLServer, né suddividerli in più tabelle, poicheé le tabelle sono mediamente due ed i campi sono mediamente 30 per ogni tabella.
Il BigBoss(che non sa quasi NULLA di programmazione) e non vuole sentire ragioni, poiché ci lavora da più di 4 anni ed ha fatto convertire da poco il tutto in Access2000 , prima erano Access97 - ora siamo fortunati... ;-)

Quindi devo "adattarmi" i C*****ni che sarebbero i suoi "migliori" consulenti(nipoti) lavorano solo in VB6 programmano solo con "l'ausilio" di Access2000 e neanche usano le StoredQuiries che possono essere utilizzate con questo formato.
Noi dobbiamo risolvere le sue C****te e scrivere, riscrivere molto più codice del dovuto.

LeonDom

trinity Profilo | Guru

Guarda, io access lo tolto per disperazione perchè primo è molto più lento di mysql, secondo da un punto di vista di teleasssitenza che io faccio presso i miei clienti, mysql mi aiuta molto perchè posso prelevare solo i file delle tabelle che mi servono, terzo a livello di remoto è una bomba in confronto ad access e 4 gli indici non si rovinano quanto in access..

Se ti serve un'altro consiglio chiedi pure.

Ciao
Fabio

LeonDom Profilo | Senior Member

Penso che tutte le nuove cose saranno fatte in MySql per ovvi motivi, soprattutto economici.
Ma tutto quello che già c'è e che non è programmato da noi ha sempre i soliti limiti (Access) a cui dobbiamo sottostare.

Ho letto su articolo su MySQL e non supporta le Stored, noi ne facciamo un grande uso con SQLServer, ha altri limiti?
Da quello che capisco sei soddisfatto...

Grazie per l'aiuto

LeonDom

trinity Profilo | Guru

sulla home page di questo forum c'è un articolo su mysql, ci sono scritti anche per ora i suoi limiti ma tieni presente che con la vers. 4.1 e con l 5.0 arriveremo a livelli fantastici...

ciao

LeonDom Profilo | Senior Member

Allora era proprio qui che avevo letto qualcosa sulle Stored.

Sai dirmi anche i costi approssimativi? Ti chiedo troppo? Approfitto della tua conoscenza in materia...

LeonDom

trinity Profilo | Guru

Prima di tutto mysql e tutti i tools di gestione li trovi su www.mysql.com e sono free per coloro che gestistico progetti personali. Se devi rivendere il database e quindi installare sul pc di destinazione il motore mysql, la licenza che ti serve è quella base. Cmq. sul sito www.mysql.com troverai tutte le informazioni economiche ti servono + tutti i download che devi fare sia per windows che per linux. Se ti serve sapere qualche azienda italiana che vende mysql ti consiglio di fare una ricerca su google.it

Ciao
Fabio

LeonDom Profilo | Senior Member

Grazie sei stato esauriente...

LeonDom

LeonDom Profilo | Senior Member

Trinity mi sto incastrando...

sto provando a fare l'installazione di MySQL 4.0.x installato anche ControlCenter... quando attivo la connessione mi da questo errore:

Could not connected to the specified host
MySQL Error Nr.2003

Ho un XP-Pro e volevo fare delle prove, che cosa sbaglio.

LeonDom

trinity Profilo | Guru

Dimmi prima di tutto che linguaggio di programmazione utilizzi, poi come prima cosa dei attivare il servizio di mysql che può essere fatto i due modi:

1) tasto di destra su risorse del computer e click sulla voce gestione ->poi scegli servizi ed applicazione e scorri l'elenco, alla lettera m troverai mysql, click in alto sul pulsante avvio e così avvi il servizio.

2) e questo serve soprattutto su sistemi senza tecnologia Nt quali win 98 e 98Me devi andare nella directory c:\mysql\bin e qui troverai il file exe winmysqladmin lo fai partire, la prima volta ti chiede user e password e gli dai una a tuo piacimento e poi in basso al task di windows vicino l'orario ti apparirà un semaforino che ti permetterà di gestire in visuale il servizio di mysql.

Ti ricordo che in visual studio 2003 puoi accedere ai database di mysql solo tramite odbcnet creadoti un dsn di sistema.

Se hai altri problemi, scrivi pure.

Ciao
Fabio

LeonDom Profilo | Senior Member

Ho risolto, a volte mi avvia mysql automaticamente altre no e non capisco il perché, ma ho risolto comunque. Volevochiederti una cosa per quanto riguarda le QUERY e GLI INSERT gli UPDATE etc etc.

Io utilizzo VB.NET2003 e cerco di utilizzare MySQL ho creato una tabella:
test.tabTest

Ho installato ed Importato MySQLDriverCS.dll

La lettura me la fa correttamente, ma gli insert no, che sbaglio ti posto un pezzo di codice che stoutilizzando per provare.

Dim strSQL As String
strSQL = "INSERT INTO tabTest (user) VALUES('" & txtCustomer.Text & "')"
Dim mysqlconn As New MySQLConnection("Server=Localhost;Data Source=test;UID=root;PWD=")
Dim cmd As New MySQLCommand(strSQL)
Dim intAdded As Integer
Try
mysqlconn.Open()

intAdded = cmd.ExecuteNonQuery()
If intAdded <> 0 Then
MessageBox.Show("Inserimento Riuscito")
FillData()
Else
MessageBox.Show("ERRORE")
End If
Catch ex As Exception
MessageBox.Show(ex.ToString)
Finally
mysqlconn.Close()
End Try

ERRORE: connection must be valid and open...

Gli INSERT INTO - UPDATE - DELETE e gli altri standard ANSI-SQL vengon oaccettati?

Non so se la domanda è stupida... ma io chiedo...

LeonDom

LeonDom Profilo | Senior Member

Trinity ho trovato, nel cmd non gli mettevo la mysqlconn,
chiedo perdono e smetto per oggi, forse è meglio...

Comuque le domande sono le stesse, a parte alcune cose che ho letto nell'articolo qui, gli altri standard sono come per SQLServer?

Grazie 1000

LeonDom
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5