Anomalie oledb & SQL

lunedì 08 giugno 2015 - 00.08

nous Profilo | Newbie

Impazzendomi ho capito che:
1.nelle istruzioni update non funziona la sintassi @NomeCampo ma solo ? e che quindi i parametri devono essere nel giusto ordine
2.nelle istruzioni Insert i campi e i parametri devono essere nel giusto ordine anche se funziona la sintassi @nomecampo solo per i parametri .
3. è sempre meglio racchiudere i campi tra [] perché non sia mai si incontra una parola vietata ci puoi stare anche tutta la sera a capire perché si scatena una eccezione.
possibile o succede solo a me ?

alx_81 Profilo | Guru

>1.nelle istruzioni update non funziona la sintassi @NomeCampo
>ma solo ? e che quindi i parametri devono essere nel giusto
>ordine
>2.nelle istruzioni Insert i campi e i parametri devono essere
>nel giusto ordine anche se funziona la sintassi @nomecampo solo
>per i parametri .
in generale in oledb si ragiona con i ? come segna posto e con l'ordine di definizione. Per qualunque statement.

>3. è sempre meglio racchiudere i campi tra [] perché non sia
>mai si incontra una parola vietata ci puoi stare anche tutta
>la sera a capire perché si scatena una eccezione.
>possibile o succede solo a me ?
I caratteri di escape ti consentono di prevenire nomi chiave, ma non sempre sono problematici. Mettere le [] ti garantisce anche la possibilità di usare gli spazi. Ma si parla di nomi campo ed oggetto, non valori di assegnazione.

Alessandro Alpi | SQL Server MVP | Engage IT Services s.r.l.
MCP|MCITP|MCTS|MCT
http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com

nous Profilo | Newbie

1. si ma così devi riscrivere i parametri ad ogni tipo di query o quasi... non lo so !!! non mi sembra una cosa fatta bene.

2. si si infatti ho scritto campi

alx_81 Profilo | Guru

>1. si ma così devi riscrivere i parametri ad ogni tipo di query
>o quasi... non lo so !!! non mi sembra una cosa fatta bene.
Non è questione di fatto bene o meno, il che, come dici tu, può essere discutibile, ma è una sintassi, c'è poco da fare..
Questo anche perchè si tratta di un API nata nel 90 se non ricordo male, e ha la caratteristica di essere generico per supportare ogni tipo di linguaggio (se devi far parlare più piattaforme differenti fra loro, come ORACLE e SQL ad esempio).

La domanda che mi viene però è, perchè non usi il SQLClient con i named parameters? E' dedicato a SQL Server, e, se non devi uscire da quella piattaforma, è anche più veloce.

Alessandro Alpi | SQL Server MVP | Engage IT Services s.r.l.
MCP|MCITP|MCTS|MCT
http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com

nous Profilo | Newbie

beh si in effetti il fatto della multipiattaforma limita molto da una parte ma libera dall'altra, ma per chi come me utilizza quasi esclusivamente access il vecchio DAO era super.
Non posso scomodare sql server per meno di 1000 record, è tutto più complicato da fare e non ne vale la pena.

Ciao

alx_81 Profilo | Guru

>Non posso scomodare sql server per meno di 1000 record, è tutto più complicato da fare e non ne vale la pena.
Hai pensato alla versione express? non c'è tanto da scomodare :)
Oppure di non considerare un RDBMS e spostarti su altro come un keyvalue store, un nosql, ecc..
Alessandro Alpi | SQL Server MVP | Engage IT Services s.r.l.
MCP|MCITP|MCTS|MCT
http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com

nous Profilo | Newbie

appena ho tempo devo provare con sql express, io purtroppo lavoro con db VFP ed uso un dblocale access di appoggio/specchio per le elaborazioni.

alx_81 Profilo | Guru

>appena ho tempo devo provare con sql express, io purtroppo lavoro
>con db VFP ed uso un dblocale access di appoggio/specchio per
>le elaborazioni.
allora hai anche localdb, sqlite.. ce ne sono sqlite è molto valido:
https://www.sqlite.org/
Alessandro Alpi | SQL Server MVP | Engage IT Services s.r.l.
MCP|MCITP|MCTS|MCT
http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
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