Página 1 de 1

Campo Autoincremental en Sql

Publicado: Jue Oct 09, 2008 3:53 pm
por gerencia
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body bgcolor="#ffffff" text="#000066">
<font size="-1"><font face="Verdana">Tengo un Campo Autoincremental
llave Primaria definido en una tabla de Sql <br>
<br>
Â[Row_ID] int IDENTITY(1, 1) NOT NULL<br>
<br>
Para facilidad manejo un TMemDataset exactamente igual al Dataset de la
tabla.<br>
En el momento de Grabar uso el metodo SaveFrom(:oMemDataSet), resulta
que SQL se queja por el Campo ROW_ID, como hacer para evitar que los
campos Autoincremental <big>NO</big> se incluyan dentro del grabado o
que el metodo Save() lo ignore ?<br>
<br>
En Mysql no existe este problema si le mando al campo ROW_ID el valor
cero lo ignora y graba correctamente el numero siguiente disponible.<br>
<br>
<br>
</font></font>
<div class="moz-signature">-- <br>
<meta http-equiv="CONTENT-TYPE" content="text/html; ">
<title>Josà David Angulo</title>
<meta name="GENERATOR" content="OpenOffice.org 2.0 (Win32)">
<meta name="CREATED" content="20061023;14550935">
<meta name="CHANGEDBY" content="Jose Angulo">
<meta name="CHANGED" content="20061023;14593800">
<meta name="ProgId" content="Word.Document">
<meta name="Originator" content="Microsoft Word 9">
<style>
<!--
P { color: #000000 }
-->
</style>
<p style="margin-bottom: 0cm;"><font size="2"><span
style="background: transparent none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><b><font
face="Century Gothic"><font color="#000080">JosÃ
David Angulo.</font></font></b></span><font face="Arial"><font
color="#0000ff"><br>
</font></font></font><font face="Arial"><font color="#0000ff"><b><font
style="font-size: 11pt;" size="2">A<span lang="en-GB">uditorÃa
y Sistemas Ltda. </span></font></b><br>
<font style="font-size: 8pt;" size="1">Tel.</font></font></font><font
size="1"><font face="Century Gothic"><font color="#808080">(57)
5- 6643022 – 6644555</font></font></font></p>
<p style="margin-bottom: 0cm;"><font size="1"><font
face="Century Gothic"><font color="#808080">Cartagena - Colombia</font></font></font><br>
<a href="mailto:Gerencia@microexpressltda.com"><font
style="font-size: 9pt;" size="2">jose.angulo@auditoriaysistemas.com</font></a></p>
<p style="margin-bottom: 0cm;"><br>
</p>
</div>
</body>
</html>

Campo Autoincremental en Sql

Publicado: Vie Oct 10, 2008 1:12 am
por ignacio
José David AnguloJosé David,
Prueba con oDataField:OnSetValue := {|| NIL }
Saludos
--
Ignacio Ortiz de Zúñiga
[Soporte Xailer]
[Xailer support]
"José David Angulo" <gerencia@microexpressltda.com> escribió en el mensaje news:48ee0cd5$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
Tengo un Campo Autoincremental llave Primaria definido en una tabla de Sql
[Row_ID] int IDENTITY(1, 1) NOT NULL
Para facilidad manejo un TMemDataset exactamente igual al Dataset de la tabla.
En el momento de Grabar uso el metodo SaveFrom(:oMemDataSet), resulta que SQL se queja por el Campo ROW_ID, como hacer para evitar que los campos Autoincremental NO se incluyan dentro del grabado o que el metodo Save() lo ignore ?
En Mysql no existe este problema si le mando al campo ROW_ID el valor cero lo ignora y graba correctamente el numero siguiente disponible.
--
José David Angulo.
Auditorí­a y Sistemas Ltda.
Tel.(57) 5- 6643022 - 6644555
Cartagena - Colombia
jose.angulo@auditoriaysistemas.com
--

Campo Autoincremental en Sql

Publicado: Vie Oct 10, 2008 1:19 am
por ignacio
José David AnguloJosé David,
Me temo que no va a funcionar. Hay que cambiar lo siguiente en la clase TDataSet.
//---------------------------------------------------------- ----------------
METHOD SaveFrom( oData ) CLASS XDataSet
LOCAL oTargetField, oSourceField
LOCAL cField
LOCAL nFor, nlen
IF oData:IsKindOf( "TDataSet" )
nLen := Len( oData:aFields )
FOR nFor := 1 TO nLen
oSourceField := oData:aFields[ nFor ]
oTargetField := ::oFieldByName( oSourceField:cName )
IF oTargetField != Nil
oTargetField:VarPut( oSourceField:FieldGet() )
>>>>> oTargetField:SetValue( oSourceField:FieldGet() )
ENDIF
NEXT
ELSE // oRecord
nLen := oData:Len()
FOR nFor := 1 TO nLen
cField := oData:GetName( nFor )
oTargetField := ::oFieldByName( cField )
IF oTargetField != Nil
oTargetField:VarPut( oData:GetValue( nFor ) )
>>>>> oTargetField:SetValuet( oData:GetValue( nFor ) )
ENDIF
NEXT
ENDIF
RETURN Nil
Además es mucho más correcto definir así­ el evento:
oDataField:OnSetValue := {| Value | Value }
Espero que te funcione.
Un saludo
--
Ignacio Ortiz de Zúñiga
[Soporte Xailer]
[Xailer support]
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje news:48ee8fc6$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
José David,
Prueba con oDataField:OnSetValue := {|| NIL }
Saludos
--
Ignacio Ortiz de Zúñiga
[Soporte Xailer]
[Xailer support]
"José David Angulo" <gerencia@microexpressltda.com> escribió en el mensaje news:48ee0cd5$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
Tengo un Campo Autoincremental llave Primaria definido en una tabla de Sql
[Row_ID] int IDENTITY(1, 1) NOT NULL
Para facilidad manejo un TMemDataset exactamente igual al Dataset de la tabla.
En el momento de Grabar uso el metodo SaveFrom(:oMemDataSet), resulta que SQL se queja por el Campo ROW_ID, como hacer para evitar que los campos Autoincremental NO se incluyan dentro del grabado o que el metodo Save() lo ignore ?
En Mysql no existe este problema si le mando al campo ROW_ID el valor cero lo ignora y graba correctamente el numero siguiente disponible.
--
José David Angulo.
Auditorí­a y Sistemas Ltda.
Tel.(57) 5- 6643022 - 6644555
Cartagena - Colombia
jose.angulo@auditoriaysistemas.com
--

Campo Autoincremental en Sql

Publicado: Vie Oct 10, 2008 10:36 pm
por movil
Pruebo y te comento.
Mil gracias
--
*José David Angulo.*
*Auditorí­a y Sistemas Ltda. *
Cartagena - Colombia
Ignacio Ortiz de Zúñiga escribió:
> José David,
>
> Me temo que no va a funcionar. Hay que cambiar lo siguiente en la
> clase TDataSet.
>
> //---------------------------------------------------------- ----------------
>
> METHOD SaveFrom( oData ) CLASS XDataSet
>
> LOCAL oTargetField, oSourceField
> LOCAL cField
> LOCAL nFor, nlen
>
> IF oData:IsKindOf( "TDataSet" )
> nLen := Len( oData:aFields )
> FOR nFor := 1 TO nLen
> oSourceField := oData:aFields[ nFor ]
> oTargetField := ::oFieldByName( oSourceField:cName )
> IF oTargetField != Nil
> oTargetField:VarPut( oSourceField:FieldGet() )
> >>>>> oTargetField:SetValue( oSourceField:FieldGet() )
> ENDIF
> NEXT
> ELSE // oRecord
> nLen := oData:Len()
> FOR nFor := 1 TO nLen
> cField := oData:GetName( nFor )
> oTargetField := ::oFieldByName( cField )
> IF oTargetField != Nil
> oTargetField:VarPut( oData:GetValue( nFor ) )
> >>>>> oTargetField:SetValuet( oData:GetValue( nFor ) )
> ENDIF
> NEXT
> ENDIF
>
> RETURN Nil
>
> Además es mucho más correcto definir así­ el evento:
>
> oDataField:OnSetValue := {| Value | Value }
>
> Espero que te funcione.
> Un saludo
>
> --
> Ignacio Ortiz de Zúñiga
> [Soporte Xailer]
> [Xailer support]
>
>
>
> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com
> <mailto:NoName@xailer.com>> escribió en el mensaje
> news:48ee8fc6$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> José David,
>
> Prueba con oDataField:OnSetValue := {|| NIL }
>
> Saludos
>
> --
> Ignacio Ortiz de Zúñiga
> [Soporte Xailer]
> [Xailer support]
>
>
>
> "José David Angulo" <gerencia@microexpressltda.com
> <mailto:gerencia@microexpressltda.com>> escribió en el mensaje
> news:48ee0cd5$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Tengo un Campo Autoincremental llave Primaria definido en una
> tabla de Sql
>
> [Row_ID] int IDENTITY(1, 1) NOT NULL
>
> Para facilidad manejo un TMemDataset exactamente igual al
> Dataset de la tabla.
> En el momento de Grabar uso el metodo SaveFrom(:oMemDataSet),
> resulta que SQL se queja por el Campo ROW_ID, como hacer para
> evitar que los campos Autoincremental NO se incluyan dentro
> del grabado o que el metodo Save() lo ignore ?
>
> En Mysql no existe este problema si le mando al campo ROW_ID
> el valor cero lo ignora y graba correctamente el numero
> siguiente disponible.
>
>
> --
>
> *José David Angulo.*
> *Auditorí­a y Sistemas Ltda. *
> Tel.(57) 5- 6643022 -- 6644555
>
> Cartagena - Colombia
> jose.angulo@auditoriaysistemas.com
> <mailto:Gerencia@microexpressltda.com>
>
>
--

Campo Autoincremental en Sql

Publicado: Vie Oct 10, 2008 11:12 pm
por movil
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
<title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Ignacio,<br>
<br>
Agregue la modificaciÃn del MÃtodo Savefrom() pero me genera el error
siguiente<br>
<br>
ÂÂÂÂÂ Subsistema: BASE<br>
ÂCÃdigo de error: 1004<br>
ÂÂÂÂÂÂ ÂÂÂ Estado: .F.<br>
ÂÂÂÂ DescripciÃn: Scope Violation <PROTECTED><br>
ÂÂÂÂÂÂ OperaciÃn: SETVALUE<br>
ÂÂÂÂÂ Argumentos:Â [ 1] = Tipo: O Valor: <br>
ÂÂÂÂÂÂ ÂÂ Fichero: <br>
ÂCÃdigo error SO: 0<br>
<br>
<br>
<br>
Ignacio Ortiz de ZÃÃiga escribiÃ:
<blockquote cite="mid:48ee916f$1@ozsrv2.ozlan.local" type="cite">
<title>Josà David Angulo</title>
<meta http-equiv="Content-Type" content="text/html; ">
<meta content="MSHTML 6.00.6000.16705" name="GENERATOR">
<div><font color="#000000" face="Arial" size="2">Josà David, </font></div>
<div>Â</div>
<div><font color="#000000" face="Arial" size="2">Me temo que no va a
funcionar. Hay que cambiar lo siguiente en la clase TDataSet. </font></div>
<div>Â</div>
<div><font color="#000000" face="Arial" size="2"> //---------------------------------------------------------- ---------------- </font></div>
<div>Â</div>
<div><font color="#000000" face="Arial" size="2">METHOD SaveFrom(
oData ) CLASS XDataSet</font></div>
<div>Â</div>
<div><font color="#000000" face="Arial" size="2">ÂÂ LOCAL
oTargetField, oSourceField<br>
ÂÂ LOCAL cField<br>
ÂÂ LOCAL nFor, nlen</font></div>
<div>Â</div>
<div><font color="#000000" face="Arial" size="2">ÂÂ IF
oData:IsKindOf( "TDataSet" )<br>
ÂÂÂÂÂ nLen := Len( oData:aFields )<br>
ÂÂÂÂÂ FOR nFor := 1 TO nLen<br>
ÂÂÂÂÂÂ ÂÂ oSourceField := oData:aFields[ nFor ]<br>
ÂÂÂÂÂÂ ÂÂ oTargetField := ::oFieldByName( oSourceField:cName )<br>
ÂÂÂÂÂÂ ÂÂ IF oTargetField != Nil<br>
ÂÂÂÂÂÂ ÂÂÂÂÂ oTargetField:VarPut( oSourceField:FieldGet() )<br>
>>>>>ÂÂ ÂÂÂÂÂÂ ÂÂÂ oTargetField:SetValue(
oSourceField:FieldGet() )<br>
ÂÂÂÂÂÂ ÂÂ ENDIF<br>
ÂÂÂÂÂ NEXT<br>
ÂÂ ELSE // oRecord<br>
ÂÂÂÂÂ nLen := oData:Len()<br>
ÂÂÂÂÂ FOR nFor := 1 TO nLen<br>
ÂÂÂÂÂÂ ÂÂ cField := oData:GetName( nFor )<br>
ÂÂÂÂÂÂ ÂÂ oTargetField := ::oFieldByName( cField )<br>
ÂÂÂÂÂÂ ÂÂ IF oTargetField != Nil<br>
ÂÂÂÂÂÂ ÂÂÂÂÂ oTargetField:VarPut( oData:GetValue( nFor ) )<br>
>>>>>ÂÂ ÂÂÂÂÂÂ ÂÂÂ oTargetField:SetValuet( oData:GetValue(
nFor ) )<br>
ÂÂÂÂÂÂ ÂÂ ENDIF<br>
ÂÂÂÂÂ NEXT<br>
ÂÂ ENDIF</font></div>
<div>Â</div>
<div><font color="#000000" face="Arial" size="2">RETURN Nil</font></div>
<div>Â</div>
<div><font color="#000000" face="Arial" size="2">AdemÃs es mucho mÃs
correcto definir asà el evento:</font></div>
<div>Â</div>
<div><font color="#000000" face="Arial" size="2">
</font>
<div><font color="#000000" face="Arial" size="2"><font color="#000000"
face="Arial" size="2">oDataField:OnSetValue := {| Value |ÂValue }</font></font></div>
</div>
<div><font color="#000000" face="Arial" size="2">Â</font></div>
<div><font color="#000000" face="Arial" size="2">Espero que te
funcione.<br>
</font></div>
<div><font color="#000000" face="Arial" size="2">Un saludo</font></div>
<div>Â</div>
<div>-- <br>
Ignacio Ortiz de ZÃÃiga<br>
[Soporte Xailer]<br>
[Xailer support]</div>
<div>Â</div>
<div>Â</div>
<blockquote dir="ltr"
style="border-left: 2px solid rgb(0, 0, 0); padding-right: 0px; padding-left: 5px; margin-left: 5px; margin-right: 0px;">
<div>"Ignacio Ortiz de ZÃÃiga" <<a moz-do-not-send="true"
href="mailto:NoName@xailer.com">NoName@xailer.com</a>> escribià en
el mensaje <a moz-do-not-send="true"
href="news:48ee8fc6$1@ozsrv2.ozlan.local">news:48ee8fc6$1@ozsrv2.ozlan.local</a>...</div>
<div><font color="#000000" face="Arial" size="2">Josà David, </font></div>
<div>Â</div>
<div><font color="#000000" face="Arial" size="2">Prueba con
oDataField:OnSetValue := {|| NIL }</font></div>
<div>Â</div>
<div><font color="#000000" face="Arial" size="2">Saludos</font></div>
<div><br>
-- <br>
Ignacio Ortiz de ZÃÃiga<br>
[Soporte Xailer]<br>
[Xailer support]</div>
<div>Â</div>
<div>Â</div>
<blockquote dir="ltr"
style="border-left: 2px solid rgb(0, 0, 0); padding-right: 0px; padding-left: 5px; margin-left: 5px; margin-right: 0px;">
<div>"Josà David Angulo" <<a moz-do-not-send="true"
href="mailto:gerencia@microexpressltda.com">gerencia@microexpressltda.com</a>>
escribià en el mensaje <a moz-do-not-send="true"
href="news:48ee0cd5$1@ozsrv2.ozlan.local">news:48ee0cd5$1@ozsrv2.ozlan.local</a>...</div>
<font size="-1"><font face="Verdana">Tengo un Campo
Autoincremental llave Primaria definido en una tabla de Sql <br>
<br>
Â[Row_ID] int IDENTITY(1, 1) NOT NULL<br>
<br>
Para facilidad manejo un TMemDataset exactamente igual al Dataset de la
tabla.<br>
En el momento de Grabar uso el metodo SaveFrom(:oMemDataSet), resulta
que SQL se queja por el Campo ROW_ID, como hacer para evitar que los
campos Autoincremental <big>NO</big> se incluyan dentro del grabado o
que el metodo Save() lo ignore ?<br>
<br>
En Mysql no existe este problema si le mando al campo ROW_ID el valor
cero lo ignora y graba correctamente el numero siguiente disponible.<br>
<br>
<br>
</font></font>
<div class="moz-signature">-- <br>
<meta content="OpenOffice.org 2.0 (Win32)" name="GENERATOR">
<meta content="20061023;14550935" name="CREATED">
<meta content="Jose Angulo" name="CHANGEDBY">
<meta content="20061023;14593800" name="CHANGED">
<meta content="Word.Document" name="ProgId">
<meta content="Microsoft Word 9" name="Originator">
<style>P {
COLOR: #000000
}
</style>
<p style="margin-bottom: 0cm;"><font size="2"><span
style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><b><font
face="Century Gothic"><font color="#000080">Josà David Angulo.</font></font></b></span><font
face="Arial"><font color="#0000ff"><br>
</font></font></font><font face="Arial"><font color="#0000ff"><b><font
style="font-size: 11pt;" size="2">A<span lang="en-GB">uditorÃa y
Sistemas Ltda. </span></font></b><br>
<font style="font-size: 8pt;" size="1">Tel.</font></font></font><font
size="1"><font face="Century Gothic"><font color="#808080">(57) 5-
6643022 – 6644555</font></font></font></p>
<p style="margin-bottom: 0cm;"><font size="1"><font
face="Century Gothic"><font color="#808080">Cartagena - Colombia</font></font></font><br>
<a moz-do-not-send="true"
href="mailto:Gerencia@microexpressltda.com"><font
style="font-size: 9pt;" size="2">jose.angulo@auditoriaysistemas.com</font></a></p>
<p style="margin-bottom: 0cm;"><br>
</p>
</div>
</blockquote>
</blockquote>
</blockquote>
<br>
<div class="moz-signature">-- <br>
<meta http-equiv="CONTENT-TYPE" content="text/html; ">
<title>Josà David Angulo</title>
<meta name="GENERATOR" content="OpenOffice.org 2.0 (Win32)">
<meta name="CREATED" content="20060220;11005750">
<meta name="CHANGED" content="20061028;16242395">
<meta name="ProgId" content="Word.Document">
<meta name="Originator" content="Microsoft Word 9">
<style>
<!--
P { color: #000000 }
A:link { color: #0000ff }
A:visited { color: #800080 }
-->
</style>
<p style="margin-bottom: 0cm;"><font size="2"><span
style="background: transparent none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><b><font
face="Century Gothic"><font color="#000080">JosÃ
David Angulo.</font></font></b></span><font face="Arial"><font
color="#0000ff"><br>
</font></font></font><font face="Arial"><font color="#0000ff"><b><font
style="font-size: 11pt;" size="2">A<span lang="en-GB">uditorÃa
y Sistemas Ltda. </span></font></b></font></font>
</p>
<p style="margin-bottom: 0cm;"><font style="font-size: 8pt;" size="1"><font
face="Arial"><font color="#0000ff">Cartagena
- Colombia</font></font></font></p>
</div>
</body>
</html>