Newsgroup: it.comp.lang.delphi
Titolo: Could not convert variant of type (Null) into type (String

dbExpress, componente TSQLDataSet
lo inizializzo cosě:
CommandText "SELECT * FROM ANAG"
CommandType  ctQuery
Appena imposto Active (design time) a true  ottengo il messaggio d'errore
* Could not convert variant of type (Null) into type (String) *
 + $4A[51F1D0FB]{rtl100.bpl  } Variants.Variants.VarCastError (Line 530, 
"variants.pas" + 1) + $4A
 + $8[51F2117F]{rtl100.bpl  } Variants.Variants.@VarToLStr (Line 2292, 
"variants.pas" + 6) + $8
 + $1B[52BC4D71]{dbexpress100.bpl} 
SqlExpr.SqlExpr.TCustomSQLDataSet.AddIndexDefs (Line 7083, "SqlExpr.pas" + 
32) + $1B
 + $6[52BC59B8]{dbexpress100.bpl} 
SqlExpr.SqlExpr.TCustomSQLDataSet.PSGetKeyFieldsW (Line 7361, "SqlExpr.pas" 
+ 7) + $6
 + $8[5230F64B]{dbrtl100.bpl} DB.DB.SetKeyFields (Line 9442, "DB.pas" + 2) + 
$8
 + $1[5230F830]{dbrtl100.bpl} DB.DB.TDataSet.CreateFields (Line 9474, 
"DB.pas" + 16) + $1
 + $D[52BC0FDA]{dbexpress100.bpl} 
SqlExpr.SqlExpr.TCustomSQLDataSet.InternalOpen (Line 5589, "SqlExpr.pas" + 
12) + $D
 + $4[5230F0D5]{dbrtl100.bpl} DB.DB.TDataSet.DoInternalOpen (Line 9261, 
"DB.pas" + 2) + $4
 + $7[5230F049]{dbrtl100.bpl} DB.DB.TDataSet.SetActive (Line 9243, "DB.pas" 
+ 12) + $7
 + $0[51F2AC1E]{rtl100.bpl  } TypInfo.TypInfo.SetOrdProp (Line 1318, 
"TypInfo.pas" + 27) + $0
 + $6[20EED30A]{designide100.bpl} 
DesignEditors.DesignEditors.TEnumProperty.SetValue (Line 1402, 
"DesignEditors.pas" + 5) + $6
 + $24[20FCDD84]{vclide100.bpl} 
IDEInspListBox.IDEInspListBox.TInspListBox.SetPropValue (Line 1145, 
"ideinsplistbox.pas" + 40) + $24
 + $7[20FCF414]{vclide100.bpl} 
IDEInspListBox.IDEInspListBox.TInspListBox.ListAccept (Line 1636, 
"ideinsplistbox.pas" + 6) + $7
 + $12[20FCACF6]{vclide100.bpl} IDEListBtns.IDEListBtns.TListButton.CloseUp 
(Line 752, "IDEListBtns.pas" + 14) + $12
 + $6[5203C998]{vcl100.bpl  } Controls.Controls.TWinControl.WndProc (Line 
7242, "Controls.pas" + 101) + $6
 + $4[00330EAB]{idectrls100.bpl} 
IDEWideStdCtrls.IDEWideStdCtrls.TWideCustomListBox.WndProc (Line 4425, 
"IDEWideStdCtrls.pas" + 14) + $4
 + $0[51F40BB0]{rtl100.bpl  } Classes.Classes.StdWndProc (Line 11572, 
"classes.pas" + 8) + $0
 + $6F[77D18706]{USER32.dll  } GetDC + $6F
 + $14F[77D187E6]{USER32.dll  } GetDC + $14F
 + $122[77D189A0]{USER32.dll  } GetWindowLongW + $122
 + $A[77D189E3]{USER32.dll  } DispatchMessageW + $A
che cosa vi č di sbagliato???

 che cosa vi è di sbagliato???
Dovresti indicare qualche informazione in più: quali sono le 
impostazioni del componente *TSQLConnection* a cui la tua query è 
collegata? qual è il database che utilizzi? vi sono campi persistenti 
definiti nel tuo *TSQLDataSet* o in componenti ad esso correlati (ad 
esempio, un *TClientDataSet* che riceve i dati attraverso un 
*TDataSetProvider*)?
Ciao,
   Marco.
-- 
MARCO BREVEGLIERI
  (
http://www.marco.breveglieri.name
)


In realtà ho messo insieme alcuni componenti per provare la tecnologia 
dbEzpress
un TSQLConnection settato con i suggerimenti tuoi e di theVisitor del 15/6 e 
che sembra funzionare
bene...
un TSQLDataSet con CommandType posto su ctTable
e qui viene il bello...
se CommandText viene settato su una tabella una classica anagrafica
si genera l'errore , se invece lo imposto su una tabella diversa e molto più 
semplice
(2 campi, uno ad autoincremento e un campo descrizione) l'errore non si 
genera
Credo per questo che il messaggio in oggetto sia dovuto al fattao
che la tabella anagrafiche contiene molti valori null mentre la seconda no,
suffragato anche dal fatto che se restringo la select a campi che non 
contengono null
l'errore scompare. Indagherò in questa direzione .....
Appena imposto il dataSource della DBgrid a Datasource1
mi restituisce un bel *operation not allowes on a unidirectional dataset*
Perchè forse mi manca un TSQLQuery o una TSQLTable?????
sono necessarie e come collegarle?
Ho usato un TSimpleDataSet e tutte queste cose non succedono, la griglia si 
riempie
ma non sono capace di memorizzare le eventuali modifiche.
Come fare, sono un po' deluso, anche se premetto non conosco questa 
tecnologia .
Sai se esiste qualche piccolo esempio di codice per gestire questi 
componenti
visualizzazione, update di una tabella con questa tecnologia....
Grazie della tua diponibilità 

 visualizzazione, update di una tabella con questa tecnologia....
Leggi l'argomento della guida che ti ho segnalato prima e fai qualche 
ricerca sul Web.
Leggi ad esempio questo tutorial su "About Delphi Programming":
http://delphi.about.com/od/database/a/dbexpressguide.htm
