Showing posts with label SQL. Show all posts
Showing posts with label SQL. Show all posts

23/10/2008

SnTT: when LS will not retrieve all SQL data via ODBC...

This SnTT post may not be new for some people, but believe me, it will be useful to many programmers you will soon deal with this issue ;-)

Every now and then I develop a LotusScript agent to retrieve data from any data source via ODBC and SQL statement: usually I use LS:DO classes to do the job, easy and straightforward way.

Problem is when reading a large recordset, via a standard code like this:
' result as ODBCResultSet

Do

result.NextRow
'Process each row


Loop Until result.IsEndOfData


For some reason, the Do Loop code will exit even though the recordset is not fully read...
That makes me crazy: data is still available but the res.IsEndOfData equals True?!

Anyhow, there's a workaround.
Just AFTER result.Execute (will run your SQL statement...), add the code line:
result.cacheLimit= DB_NONE
and you will get ALL the data from the remote system.

From the Designer Help:
DB_NONE= minimum set. DB_NONE means that only a very small window, including the current row, is kept in memory.

See also an IBM Technote about it


03/08/2007

Still living in the past

I would like to share a thought with you...

Some days ago I was working for a a customer, with other two programmers:
one guy is very skilled in SQL, a woman is a beginner in SQL, I was "in the midle" ...

We were talking about developing a specific SQL query.

Here follows a brief transcription:

ME: "I believe to remember that it does exist a SQL instruction that permits to decide a value in a resultset column, as I would do using IF column/expression THEN ... ELSE ...

THE BEGINNER: "is it possible? I didn't kown it!"

THE EXPERT: "Sure! it's the "CASE" instruction... I used it in the past. I wrote it in my personal technical notes, together with other SQL gems..."

THE BEGINNER: "May I take a look to your notes? I thinks they would be very useful for me to study some advanced SQL subjects"

THE EXPERT:"I'm sorry, I can't... Those are notes that I edited with special care, I wrote them during the past years. But ask me about SQL, whenever you need help..."


HE WAS NOT JOKING!

We are living in the Internet and sharing age, the web 2.0 , but there are still "islands of power and knowledge": even notes on SQL are so "secret"...

Ironically, the "expert" very often use open-source and freeware libraries for his programming work.

Please, don't forget the great lesson we received by some people like
R. Stallman, Linus Torvalds and other volunteers who worked hard and shared their info with us.

LET'S SHARE INFORMATION, LET'S BE GENEROUS AND WE WILL BE REWARDED, SOON OR LATER.


Vivere nel passato

Voglio condividere con voi una breve riflessione...

Alcuni giorni fa lavoravo da un cliente, insieme ad altri due tecnici informatici:
uno era un espertissimo di SQL, l'altra un novizia di SQL (io "in mezzo").
Si discuteva su come realizzare una particolare query SQL.
Segue la conversazione:

ME: "mi sembra di ricordare che in un'istruzione SQL (select) è possibile decidere il valore di una colonna sulla base di una condizione, come se usassi una "IF colonna/espressione THEN... ELSE.."

NOVIZIA: "è possibile? non lo sapevo!"

ESPERTO: "certo! è la "CASE" ... l'ho usata in passato. L'ho scritta nei miei appunti, insieme ad altre chicche sull'SQL..."

NOVIZIA: "Posso dare un'occhiata ai tuoi appunti? sicuramente mi possono essere utili per vedere argomenti complessi di SQL"

ESPERTO: "Scusa ma non posso... Sono appunti che ho molto curato, costruiti nel corso di anni. Ma quando hai bisogno di una mano, rivolgiti a me ..."


NON STAVA PROPRIO SCHERZANDO!

Siamo nell'era di internet, della condivisione e del web 2.0 ma persistono ancora queste isole di potere/gelosie, con appunti di sql tanto "avanzati" da essere "riservati" ?!

Ironia della sorte, l' "esperto" spesso si avvale gratuitamente di librerie open-source e freeware per il suo lavoro di programmazione.

Per favore, non dimentichiamo mai la grandissima lezione data al mondo da personaggi come R. Stallman, Linus Torvalds e dei tanti volontari che hanno dato il meglio di sè è hanno condiviso il frutto del loro lavoro!

FACCIAMO CIRCOLARE LE INFORMAZIONI, SIAMO SEMPRE GENEROSI E SAREMO RICOMPENSATI, PRIMA O POI.