ID (PK) dese código VB6 funcion con returning

From: Gabriel Hermes Colina Zambra <hermeszambra(at)yahoo(dot)com>
To: Gabriel Hermes Colina Zambra <hermeszambra(at)yahoo(dot)com>, Edwin Quijada <listas_quijada(at)hotmail(dot)com>, systemguards(at)gmail(dot)com, listas(at)yoel(dot)com(dot)ar
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: ID (PK) dese código VB6 funcion con returning
Date: 2007-06-28 04:45:35
Message-ID: 77353.14029.qm@web63708.mail.re1.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Edwin ahora si cumpli con tu deseo

Empecemos a ver la cosa desde el lado de postgresql

Tabla
CREATE TABLE "public"."deposito" (
"id_deposito" SERIAL,
"deposito" VARCHAR(50),
CONSTRAINT "deposito_id_deposito_key"
UNIQUE("id_deposito")
) WITHOUT OIDS;

En la version de postgesql se crea sola

CREATE SEQUENCE "public"."deposito_id_deposito_seq"
INCREMENT 1 MINVALUE 1
MAXVALUE 2147483647 START 1
CACHE 1;

Antes lo plantee con una funcion que Alvaro me grito
Noo y con razon, me aporto la solucion nextval,
totalmente valida para cumplir el proposito, pero como
el desafio de Edwin era que tomara el returning desde
VB, aca esta la solucion con la funcion que me retorna
el returning y la llamo desplegando con un msgbox,
despues de esto siendo las 2 am, me voy a tomar
merecido descanso y a dormirme en el trabajo un
poquito. Espero les guste.

CREATE OR REPLACE FUNCTION "public"."fnc_deposito"
(cdeposito varchar) RETURNS integer AS
$body$
declare
cdeposito alias for $1;
ndeposito integer;
BEGIN
insert into deposito (deposito) values($1) returning
id_deposito into ndeposito;
return ndeposito;
end;
$body$
LANGUAGE 'plpgsql' VOLATILE RETURNS NULL ON NULL INPUT
SECURITY INVOKER;
Puede cambiarse values($1) por select $1 a gusto
del consumidor
Estoy contentisimo con las posibilidades del returning

Bueno con esto del lado de postgresql. nos vamos
para Windows, y aca es donde casi toda la lista me
tira pedradas.

Creamos el DSN que nos conecte a la base de datos.
Y ahora es donde las pedradas duelen por que nos
vamos para visual basic.

Primero cree un dataenviroment.dsr
Defini la conexion apuntando al DSN
y con boton izquierdo del mouse inserte un
procedimiento almacenado, entre todos elegi
public.fnc_deposito, usado para este ejemplo

En el Form1 creado en el nuevo proyecto con un text
box y un command button,
digite este pequenio codigo.

Option Explicit
Private Sub Command1_Click()
Dim a As Integer
a = Dtadeposito.public_fnc_deposito(Text1.Text)
MsgBox a
End Sub

Fijate que no tuve que hacer mucho a base de codigo,
como abrir y cerrar un recordset para insertar ni
nada
de eso.
O poner un recordset.addnew o un adodatacontrol con
update cancel y todas esas historias.


atte
Gabriel Hermes Colina Zambra

> Correo Yahoo!
> Espacio para todos tus mensajes, antivirus y
> antispam ¡gratis!
> Regístrate ya - http://correo.espanol.yahoo.com/
>

__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
Regístrate ya - http://correo.espanol.yahoo.com/

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Gabriel Hermes Colina Zambra 2007-06-28 04:48:28 Re: OT , Obtener ID (PK) dese código VB6 con odbc
Previous Message Jaime Casanova 2007-06-28 04:45:32 Re: OT , Obtener ID (PK) dese código VB6 con odbc