Tuesday, 31 August 2010

Mysterious error using the sqloledb provider on x64

Do you get a mysterious error using the sqloledb provider on x64?

Are things like -2146824535, 0x800A0EA9, Unknown error, Provider is not specified and there is no designated default provider (while it is there and apparently well specified) and similar wasting your day, even do the connection seems to open perfectly on x86 and amazingly even on some x64 code, but not in some other?

Give a look at the exact format of the connection string. Give it an hard look.

In my case, the x86 format was as such:

connectionString = _bstr_t("\
Provider=sqloledb; \
Data Source=") + server + _bstr_t(";\
Initial Catalog=") + database + _bstr_t(";");

This was not working at all in x64, returning all the above. Changing it in the following, made it working both for x64 and x86:

connectionString = _bstr_t("Provider=sqloledb; \
Data Source=") + server + _bstr_t(";\
Initial Catalog=") + database + _bstr_t(";");

The difference was basically 6 blank spaces, if you don't count the starting escape.

Amazing, isn't?

Sunday, 8 August 2010

La Russia brucia, pane e pasta alle stelle?

La Russia brucia.

Questa estate è stata la più calda registrata in Russia da quando sono iniziate le registrazioni delle temperature, a Luglio la temperatura massima media è stata di 31C, in alcune zone sono stati infranti record su record, ed il fenomeno sta continuando in questo primo scorcio di Agosto.

Soltanto il primo fine settimana di Luglio, quando le massime hanno iniziato ad oltrepassare i 40C in buona parte del paese, sono morte circa 300 persone perché affogate mentre cercavano di rinfrescarsi nei corsi d’acqua. Soltanto a Mosca nel mese di Luglio, quando si sono registrate minime notturne oltre i 35C, sono morte quasi 5000 persone in più che in media. La cifra totale delle morti direttamente correlabili all’ondata di caldo che ha colpito la Russia finirà probabilmente per essere stimata almeno nelle decine di migliaia di vittime, se non proprio con cifre a sei figure.

L’ondata di caldo, completamente anomala, ben oltre 7C oltre le medie stagionali, è stata accompagnata dalla peggiore siccità che abbia colpito la Russia in secoli, una combinazione letale che ha innescato migliaia di incendi che hanno già distrutto milioni di ettari di foreste e soprattutto 9 preziosissimi milioni di ettari di terreno agricolo.

Le previsioni per il raccolto di grano sono precipitate, delle 85 milioni di tonnellate previste al momento si spera di riuscire a raccoglierne almeno 70 milioni di tonnellate. Per far fronte alla perdita di oltre il 20% del raccolto, il governo Russo ha proibito le esportazioni di grano almeno fino a Dicembre. Il crollo delle previsioni sulla produzione di grano in Russia, che è uno dei principali esportatori, specialmente nell’area del Mediterraneo, e soprattutto il divieto di esportazione, hanno fatto letteralmente schizzare verso l’alto i prezzi del grano sui mercati mondiali.

Dall’inizio della calda estate russa ad oggi il prezzo medio mondiale del grano è praticamente raddoppiato, il che, come già accaduto un paio di anni fa, potrebbe tradursi in un nuovo incremento del prezzo al consumatore di pane, pasta e tutti i prodotti affini. Un paio di anni fa l’impennata dei prezzi fu in gran parte determinata dall’aumento dei prezzi del petrolio, perché oltre un certo livello di prezzi diventava più conveniente economicamente utilizzare i raccolti di cereali ed affini per produrre carburante biologico. In buona sostanza per far muovere le auto nei paesi più ricchi si alzava il costo dei beni alimentari di prima necessità nei paesi più poveri. Questa volta, se i prezzi del petrolio si dovessero mantenere stabili, si dovrebbe riuscire ad evitare una tale perversa dinamica, ma una qualsiasi impennata del petrolio in concomitanza alla difficile situazione determinata dalle perdite dovute alla siccità in Russia avrebbe conseguenze devastanti per le classi sociali più povere in molti paesi.