Ben,
Bills post didn't have anything to do with Select actions vs had written SQL
in DirectDBMS actions
his complaint, ( a very valid one) seems to be that assigning the
[EMAIL PROTECTED] array to a method scoped variable, causes the zero row to be
lost... a serious problem if you write good object oriented code, and don't
want every database query to end up as a global variable.
/John
On Tue, Apr 1, 2008 at 2:30 AM, Ben Johansen <[EMAIL PROTECTED]> wrote:
> I think this has been discussed and hashed out several times on the
> list.
> the is due as you state at the end to directDBMS actions, as as Search
> action will always return the zero row.
> The main reason is the directDBMS action is not just for straight sql
> with with nice know column names.
>
> Not sure if this will ever be considered broken because of the coding
> that would have to be done to determine what to put in the 0 row could
> hinder performance.
>
> I have found in directdbms action to put "as" designators on ambiguous
> columns
>
> for example:
>
> SELECT orderitem.OrderItemId as orderitemid,
> orderitem.OrderId as order_number,
> pd_vendor_tracking.po_number as po_number,
> orderitem.itemstatusid as order_item_status,
> luorderstatus.status as order_item_status_name,
> date(orderitem.cancel_date) as cancel_date,
> coalesce(unix_timestamp(orderitem.cancel_date),-1) as
> cancel_date_nbr,
> coalesce(unix_timestamp(cancelled_order_items.process_date),-1) as
> process_date_nbr,
> left(bolinf_customer_list_int.campaign_id,2) as campaign_id,
> orderhdr.account_number as account_number,
> orderhdr.Name as customer_name,
> case when isnull(pd_vendor_tracking.line_id) then
> products.vendor
> else
> pd_vendor_tracking.vendor
> end as vendor,
> pd_vendor_tracking.status as vendor_status,
> products.name as product_name,
> products.sku as product_sku,
> products.price as product_sell_price,
> products.shipprice as product_ship_price,
> products.cogs as product_cogs,
> orderitem.replacesku as replacement_sku,
> orderitem.replacecogs as replacement_cogs,
> subcategories.name as subcategory_name,
> date(pd_settlement.settlement_date) as settlement_date,
> date(orderitem.vendor_po_date) as vendor_po_date,
> date(orderitem.vendor_payment_date) as vendor_payment_date,
> case when (coalesce(unix_timestamp(orderitem.vendor_po_date),-1) <
> 1)
> then 'BEFORE PO'
> when pd_vendor_tracking.status = 'REJECTED' then 'EDI
> PO/REJECTED'
> when (length(coalesce(orderitem.tracking_num,'')) < 1) then
> 'AFTER
> PO BEFORE ASN'
> when
> (coalesce(unix_timestamp(pd_settlement.settlement_date),-1) <
> 1) then 'AFTER ASN BEFORE SETTLEMENT'
> else 'AFTER ASN/SETTLEMENT' end AS cancel_timing,
> pd_vendor_tracking.status as edi_po_status,
> date(orderitem.shipdate) as ship_date,
> orderitem.tracking_num as tracking_number,
> orderitem.cancel_reason as cancel_reason,
> pd_cancellation_reason.description as cancel_reason_description,
> ordernotes.note as dashboard_comment,
> cancelled_order_items.id,
> cancelled_order_items.order_item_id,
> after_settled_dispositions.after_settled_disposition AS
> delivery_status,
> cancelled_order_items.delivery_date,
> cancelled_order_items.delivery_stat_check_date,
> cancelled_order_items.base_prod_orderno,
> cancelled_order_items.first_vendor_ra_req_date,
> cancelled_order_items.last_vendor_ra_req_date,
> cancelled_order_items.ra_req_count,
> cancelled_order_items.vendor_ra_rcvd_date,
> cancelled_order_items.vendor_ra_number,
> cancelled_order_items.vendor_ra_exp_date,
> cancelled_order_items.ra_labels_to_cust_date,
> cancelled_order_items.ra_track_number,
> cancelled_order_items.last_date_ra_track_checked,
> cancelled_order_items.prod_back_at_vendor_date,
> cancelled_order_items.first_vendor_cm_req_date,
> cancelled_order_items.last_vendor_cm_req_date,
> cancelled_order_items.vendor_cm_req_count,
> cancelled_order_items.vendor_cm_date,
> cancelled_order_items.vendor_cm_number,
> cancelled_order_items.vendor_cm_amount,
> cancelled_order_items.prod_retuned_to_pear_date,
> cancelled_order_items.pear_inventory_number,
> cancelled_order_items.system_rma_date,
> cancelled_order_items.system_rma_line_id,
> cancelled_order_items.system_rma_order_nbr,
> cancelled_order_items.rma_tax,
> cancelled_order_items.restocking_20per_fee,
> cancelled_order_items.net_rma_amount,
> cancelled_order_items.process_staff_member,
> cancelled_order_items.rma_book_date,
> cancelled_order_items.cust_keep_confirm_date,
> cancelled_order_items.oper_approved_credit_date,
> cancelled_order_items.finance_applied_date,
> cancelled_order_items.ge_settlement_date,
> case when cancelled_order_items.vendor_cm_missing_indicator = 0
> then
> 'N'
> when cancelled_order_items.vendor_cm_missing_indicator = 1
> then 'Y'
> else 'N' end AS vendor_cm_missing_indicator,
> temp_credit_dispositions.temp_credit_disposition AS
> temp_credit_indicator,
> cancelled_order_items.followup_notes,
> cancelled_order_items.base_product_order_status,
> cancelled_order_items.ra_label_expire_date,
> cancelled_order_items.tn_status,
> cancelled_order_items.process_date,
> cancelled_order_items.last_updated,
> orderitem.UnitPrice as unit_selling_price,
> orderitem.shipPrice as unit_ship_price,
> orderitem.tax_amount as unit_tax_amount,
> cancelled_order_items.rma_product_price,
> cancelled_order_items.rma_ship_price,
> cancelled_order_items.shipping_status,
> case when cancelled_order_items.urgent_approv_credit_ind = 0 then
> 'N'
> when cancelled_order_items.urgent_approv_credit_ind = 1
> then 'Y'
> else 'N' end AS urgent_approv_credit_ind,
> orderitem.parentid,
> products.categoryCode,
> pd_warranty_status.status as warranty_status
> FROM orderitem
> LEFT OUTER JOIN orderhdr ON orderitem.orderid = orderhdr.orderid
> LEFT OUTER JOIN bolinf_customer_list_int ON
> orderhdr.certification_id
> = bolinf_customer_list_int.certification_id
> left join products on case when isnull(orderitem.replacesku) then
> orderitem.productsku when orderitem.replacesku = '' then
> orderitem.productsku else orderitem.replacesku end = products.sku
> LEFT OUTER JOIN pd_settlement ON orderitem.orderitemid =
> pd_settlement.orderitemid
> LEFT OUTER JOIN subcategories ON products.subcategorycode =
> subcategories.code
> left outer join luorderstatus on orderitem.itemstatusid =
> luorderstatus.orderstatusid
> left outer join pd_cancellation_reason on orderitem.cancel_reason =
> pd_cancellation_reason.cancel_reason_code
> left outer join cancelled_order_items on orderitem.orderitemid =
> cancelled_order_items.order_item_id
> left outer join pd_vendor_tracking on orderitem.orderitemid =
> pd_vendor_tracking.orderitemid
> left outer join ordernotes on orderitem.orderid =
> ordernotes.orderid
> and left(ordernotes.note,11) = '[Cancelled]'
> left outer join after_settled_dispositions on
> after_settled_dispositions.after_settled_id =
> cancelled_order_items.delivery_status
> left outer join temp_credit_dispositions on
> temp_credit_dispositions.temp_credit_id =
> cancelled_order_items.temp_credit_indicator
> left outer join pd_warranty_status on orderitem.orderitemid =
> pd_warranty_status.orderitemid
> WHERE date(orderitem.cancel_date) >= date('2007-05-04')
> group by orderitem.orderitemid order by orderitem.orderitemid
>
> I have no problem getting row 0 to populate using this select in a
> directDBMS.
>
> Ben
>
>
> On Apr 1, 2008, at 12:11 AM, William M Conlon wrote:
>
> > I would really like to see Row 0 consistently implemented. I do all
> > my Database actions in methods, so to return an array, I assign the
> > resultset to a method scope variable. I've found that row 0 is NOT
> > returned if I merely
> >
> > <@ASSIGN SCOPE="method" NAME="array" VALUE="@@request$resultset">
> >
> > Instead, I must explicitly assign row 0:
> >
> > <@ASSIGN SCOPE="method" NAME="array[0,*]" VALUE="@@request
> > $resultset[0,*]">
> > <@ASSIGN SCOPE="method" NAME="array[1,*]" VALUE="@@request
> > $resultset[1,*]">
> >
> > Perhaps this will be fixed in v6 as as a natural consequence of
> > allowing DBMS actions to be assigned to @@method$resultset.
> >
> > Bill
> >
> > William M. Conlon, P.E., Ph.D.
> > To the Point
> > 2330 Bryant Street
> > Palo Alto, CA 94301
> > vox: 650.327.2175 (direct)
> > fax: 650.329.8335
> > mobile: 650.906.9929
> > e-mail: mailto:[EMAIL PROTECTED]
> > web: http://www.tothept.com
> >
> > ________________________________________________________________________
> > TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf
> >
> ________________________________________________________________________
> TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf
>
>
--
/John
________________________________________________________________________
TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf