ADO append con Uniqueidentifier en MSSQL

ADO append con Uniqueidentifier en MSSQL

Postby pymsoft » Thu May 03, 2007 10:55 am

Manualmente hago asi para agregar un registro con el campo ID del tipo uniqueidentifier: (B85E62C3-DC56-40C0-852A-49F759AC68FB)

Code: Select all  Expand view  RUN
INSERT INTO articoli
  (ID, Sub_ID, codice, descrizione)
  VALUES     (NEWID(), 15, 'uno', 'due')



Alguien sabe como hacerlo con ADO?
Code: Select all  Expand view  RUN
FOR i := 1 TO 5000
    oRs:AddNew()
  //oRs:fields("ID"):VALUE := "NEWID()"
  oRs:fields("Sub_ID"):VALUE := i
  oRs:fields("codice"):value := "COD" + ALLTRIM( STR( i ) )
  oRs:Fields( "descrizione" ):Value := "Descrizione articolo " + ALLTRIM( STR( i ) )
    oRs:Update()
NEXT



Gracias
Pedro Gonzalez
User avatar
pymsoft
 
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia

Postby pymsoft » Fri May 04, 2007 8:14 am

Fernando,


no puedo usar adordd porque no compila con la version de xharbour que uso yo, que no puedo cambiar porque uso FWH 2.7 que actualizaré apenas me lo permitan. De todos modos, no se si está previsto, pero cuando el campo es del tipo uniqueidentifier hay que llamar a una funcion NewID() para crear el uniqueidentifier, que manualmente se hace "INSERT INTO articoli (ID, codice) VALUES (NewID(), 'codigo uno')"

Mi problema es que con ADO no podia hacerlo en automatico, de todos modos lo he resuelto en este modo:

Code: Select all  Expand view  RUN
  TRY
    oRs:AddNew()
  CATCH oError
    MsgStop(oError:Operation+CRLF+oError:Description,"Ado Connection")
    RETURN NIL   
  END TRY

  TRY
    oRs2 := oConnection:Execute("select newid()")
  CATCH oError
    MsgStop(oError:Operation+CRLF+oError:Description,"Ado Connection")
    RETURN NIL
  END TRY

  cNewID := oRs2:fields(0):value

  oRs:fields("ID"):VALUE := cNewID
  oRs:fields("Sub_ID"):VALUE := i
  oRs:fields("codice"):value := "COD" + ALLTRIM( STR( i ) )
  oRs:Fields( "descrizione" ):Value := "Descrizione articolo " + ALLTRIM( STR( i ) )
  oRs:Fields( "nota1" ):Value := REPLICATE("-=-", 800 )
  oRs:Fields( "nota2" ):Value := REPLICATE("-+-", 800 )
  oRs:Fields( "messaggio" ):Value := REPLICATE(".-.", 800 )

  TRY
    oRs2:close()
  CATCH
  END TRY



Seria bueno preveerlo que en ADORDD (si ya no lo hace) que cuando el campo sea de este tipo, lo genere automaticamente al hacer un append.

Saludos y gracias de tu tiempo.
Pedro Gonzalez
User avatar
pymsoft
 
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia

Postby Biel EA6DD » Fri May 04, 2007 1:27 pm

Con ado puedes utilizar el metodo Execute del objeto connection.

Code: Select all  Expand view  RUN
oCnn:Execute("INSERT INTO articoli   (ID, Sub_ID, codice, descrizione)   VALUES     (NEWID(), 15, 'uno', 'due') ")
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
User avatar
Biel EA6DD
 
Posts: 682
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca

Postby pymsoft » Fri May 04, 2007 4:13 pm

Biel,


justamente, como habia leido aqui que RF decía que conviene usar oRs:update() en vez del comando INSERT (o de repente yo lo entendí mal), es que quería saber como hacerlo con el recordset (:update() en vez que con :Execute()


gracias de tu tiempo.
Pedro Gonzalez
User avatar
pymsoft
 
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia

Postby wmormar » Fri May 04, 2007 4:52 pm

Fernando Sanchez wrote:Hola Pedro,

En el mensaje referente a ADORDD un usuario posteo un link con todo lo necesario para hacer funcionar en xHarbour. Recuerda compilar el codigo fuente de ADORDD con tu version de xHarbour.

http://rapidshare.com/files/29234022/adoRDD.rar.html


Fer,

compila tanto en xharbour como harbour.

por cierto, sería conveniente incluir las modificaciones en el cvs de harbour.

saludos
William, Morales
Saludos

méxico.sureste
User avatar
wmormar
 
Posts: 1074
Joined: Fri Oct 07, 2005 10:41 pm
Location: México

Postby Antonio Linares » Fri May 04, 2007 5:10 pm

William,

Vamos a subir las modificaciones al CVS de Harbour, lo que ocurre es que queremos hacer algunos cambios en el código para eliminar diferencias entre Harbour y xHarbour y que a ser posible, se use el mismo código con ambos
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42151
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby wmormar » Fri May 04, 2007 7:49 pm

Antonio Linares wrote:William,

Vamos a subir las modificaciones al CVS de Harbour, lo que ocurre es que queremos hacer algunos cambios en el código para eliminar diferencias entre Harbour y xHarbour y que a ser posible, se use el mismo código con ambos


ok. gracias
William, Morales
Saludos

méxico.sureste
User avatar
wmormar
 
Posts: 1074
Joined: Fri Oct 07, 2005 10:41 pm
Location: México


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 32 guests