Abort delete in a trigger?

Has anyone implemented the following behavior?
I want a trigger that sets a status column from 'A'ctive to 'D'eleted on my table instead of actually deleting the records when a delete command is executed. I figured I could do this with a trigger, and I'm investigating that now, but it seems like I'll have to create a new record to achieve this?
Thanks,
Ben

create table t01(
id number,
status varchar2(10)
insert into t01 values(1,'Active');
insert into t01 values(2,'Active');
create view t01View is
select * from t01
create or replace trigger t01ViewTrigger instead of delete on t01View
for each row
begin
update t01
set status = 'Deleted'
where id = :OLD.id;
end;
SQL> select *
2 from t01
3 /
ID STATUS
1 Active
2 Active
SQL> delete t01View where id = 1
2 /
1 row deleted.
SQL> select *
2 from t01
3 /
ID STATUS
1 Deleted
2 Active
Best Regards
Krystian Zieja / mob

Similar Messages

  • Can i see the deleted rows in trigger?

    Hi all, i need to found a similar behavior for this code in sql server:
    SELECT ID FROM DELETED WHERE ID > 100
    The DELETED table is defined like that:
    "The deleted table stores copies of the affected rows during DELETE and UPDATE statements. During the execution of a DELETE or UPDATE statement, rows are deleted from the trigger table and transferred to the deleted table."
    Can i access these rows in ORACLE? I tried with ":old" but i couldn't obtain good results.
    Thanks
    Marcos

    No. You can create FOR EACH ROW trigger and apply logic there.
    SY.

  • Error When Deleting From A Trigger

    When I use a trigger to delete from my Oracle Spatial table, the triggering delete statement will fail if the Oracle Spatial table has a spatial index.
    Details:
    Tables CHEV_WELLBORE and CHEV_WELLBORE_SDO need to stay in sync. CHEV_WELLBORE_SDO has an sdo geometry column plus foreign keys to join back to CHEV_WELLBORE. When you delete from CHEV_WELLBORE, my trigger is supposed to delete the related row from CHEV_WELLBORE_SDO. When I execute the DELETE FROM CHEV_WELLBORE (one row), it processes for a minute or two then fails with an End Of Communications error. If I try the same thing without the spatial index on CHEV_WELLBORE_SDO it works fine. Can anyone see what I'm doing wrong here?
    Connected to:
    Oracle8i Enterprise Edition Release 8.1.6.0.0 - Production
    With the Partitioning option
    JServer Release 8.1.6.0.0 - Production
    SQL> drop INDEX CHEV_WELLBORE_SPX force;
    Index dropped.
    SQL> CREATE OR REPLACE TRIGGER SYNC_WELLBORE_SDO_D
    2 AFTER DELETE
    3 ON CHEV_WELLBORE
    4 FOR EACH ROW
    5 WHEN ((old.NO2_BH_LONGITUDE IS NOT NULL AND old.NO2_BH_LATITUDE IS NOT NULL) OR (old.NOD_SURFACE_LONGITUDE IS NOT NULL AND old.NOD_SURFACE_LATITUDE IS NOT NULL))
    6 BEGIN
    7
    8 -- Keep the CHEV_WELLBORE_SDO table in sync with CHEV_WELLBORE
    9
    10 DELETE FROM CHEV_WELLBORE_SDO WHERE CHEVNO = :old.CHEVNO AND SIDETRACK = :old.SIDETRACK;
    11
    12 EXCEPTION
    13 WHEN OTHERS THEN
    14 null; -- Do Nothing, and allow triggering statement to continue without error.
    15
    16 END;
    17 /
    Trigger created.
    SQL>
    SQL> DELETE FROM CHEV_WELLBORE WHERE CHEVNO = '123456';
    5 rows deleted.
    SQL> ROLLBACK
    2 ;
    Rollback complete.
    SQL> CREATE INDEX CHEV_WELLBORE_SPX
    2 ON CHEV_WELLBORE_SDO(GEOMETRY)
    3 INDEXTYPE IS MDSYS.SPATIAL_INDEX
    4 PARAMETERS (' SDO_LEVEL=14 SDO_NUMTILES=0 SDO_MAXLEVEL=32')
    5 ;
    Index created.
    SQL> DELETE FROM CHEV_WELLBORE WHERE CHEVNO = '123456';
    DELETE FROM CHEV_WELLBORE WHERE CHEVNO = '123456'
    ERROR at line 1:
    ORA-03113: end-of-file on communication channel

    Does your DELETE key have an associated After-Process-Branch? Does you page have an "unconditional" Branch. Your unconditional one should have the highest sequence number (of all your branches).
    If you have one assinged to the DELETE key, can you check to see what Page or URL is referenced withint that After-Process-Branch.

  • SP in delete/insert/modify trigger

    I have created a trigger which sends a notification email on deletes.inserts, or updates on a particular table.  Trigger works great.  While testing, I did a delete all - and sure enough the trigger fired on every row that was deleted and I got over 6k emails, LOL!!!  So I am thinking have this trigger call a stored proc, which then keeps up with an audit table with sysdatetime/row/count or something.  If number of rows deletetd within a certain timeframe (10seconds?) exceeds 5 then don't send any more emails.  Does this sound feasible or is there a better way?  Thanks!

    I have created a trigger which sends a notification email on deletes.inserts, or updates on a particular table.  Trigger works great
    Then you must want emails to be sent even if those DML operations fail or get rolled back. Is that true?
    If a user does the following do you really want email notifications sent?
    INSERT INTO myTable . . .;
    ROLLBACK;
    Triggers are non-transactional. They do NOT know if the work they do will ever be committed or not. Any work that a trigger does could be rolled back by Oracle or by the user.
    Unless you want email notifications sent even if that DML 'never happens', because it gets rolled back, triggers are the wrong method to use.

  • Better approach for deleting rows using trigger or procedure

    Hi,
    Please suggest which option is better for deleting rows from table trigger or procedure and why?
    In datawarehousing and OLTP DB's.
    Edited by: user6040008 on Nov 2, 2012 4:51 AM

    Hi,
    Please suggest which option is better for deleting rows from table trigger or procedure and why?
    In datawarehousing and OLTP DB's.
    Edited by: user6040008 on Nov 2, 2012 4:51 AM

  • Get Current SQL in Before delete trigger

    Hi,
    I have created a before delete trigger to track which records are deleted from a table I need to know what statements fires the trigger. can someone please describe how I can retrieve the current SQL.
    using sys_context('userenv','CURRENT_SQL') returns null for CURRENT SQL
    Note:
    For me the easier is to enable auditing and audit delete on the table however at the moment I cant get a downtime from the business to bounce the database to enable auditing.
    CREATE OR REPLACE TRIGGER before_delete BEFORE DELETE
    ON AUDIT_TEST_TAB
    FOR EACH ROW
    DECLARE
    v_username varchar2(50);
    v_stmt varchar2(255);
    v_client_info varchar2(200);
    v_os_user varchar2(50);
    v_machine varchar2(50);
    v_program varchar2(50);
    v_module varchar2(50);
    v_auth_type varchar2(200);
    v_ip_addr varchar2(200);
    v_sql_statement VARCHAR2(4000);
    BEGIN
    SELECT sys_context ('USERENV', 'CURRENT_SQL')
    INTO v_sql_statement
    FROM dual;
    -----------insert into logging table statment ----
    end;

    A few comments.
    Lets assume you run a delete statement that deletes 550 rows from your table. If your trigger is working then the very same statement would be stored 550 times. I think an BEFORE or better an AFTER delete STATEMENT level trigger would be the better choice. Why AFTER? Because if the delete operation fails, for example because of existing child records, then everything is rolled back anyway to the implicit savepoint just before the delete.
    So to store the SQL statement the correct trigger would be an AFTER STATEMENT DELETE trigger.
    Now what to store: You want the sql statement. You could try to find the cursor/currently running SQL. It might be tricky to separate that from the SQLs that you run to find this out.
    It could even be possible to simply save all commands that are in your PGA/Cached cursor area. First find out yur session, then store the SQL_text (first 60 chars) for all the cursors in this session by using v$open_cursor or the first 1000 chars by using v$sql.
    Here are a few views that might be helpful. v$session , v$open_cursor, v$sql, v$sqltext, v$sql_bind_data, v$sql_bind_capture, dba_hist_sqltext

  • Can I use a trigger to keep record of deleted data?

    I am trying to log changes to a table, including deletes. The trigger is working effectively for INSERT and UPDATE, but does not capture the data from the row when I create a DELETE trigger.   I have tried various trigger syntax methods to capture the data in a new "log" table, but I only seem to get the key field after the trigger fires.
    My base table has only a few fields:  ID (key), NAME, DESCRIPTION, CREATED_ON, UPDATED_ON.
    On delete, I would like to capture the data that was deleted for record keeping and audit trails.   Below is the latest iteration of my trigger define code:
    create trigger ADDRESS_TYPES_TRIGGER_D
    BEFORE DELETE ON "MEDPORTAL"."MEDPORTAL_XS.data::ADDRESS_TYPES"
    REFERENCING OLD ROW AS thisRow
    FOR EACH ROW
    begin
      declare newId INT;
      declare deleteId INT := 131;
      select "MEDPORTAL"."MEDPORTAL_XS.data::Address_Types_Log_ID".NEXTVAL into newID from DUMMY;
      INSERT INTO "MEDPORTAL"."MEDPORTAL_XS.data::ADDRESS_TYPES_LOG"
      (ID,
      USERNAME,
      ACTION_ID,
      ADDRESS_TYPE_ID,
      NAME,
      DESCRIPTION,
      UPDATED_ON
      values(
      :newId,
      current_user,
      :deleteId,
      :THISROW.ID,
      :THISROW.NAME,
      :THISROW.DESCRIPTION,
      current_timestamp
    end
    This code captures the newId from the sequence as the new table key.  It also captures the USERNAME, ACTION_ID (coded to a delete message in another table), ADDRESS_TYPE_ID (THISROW.ID), and the current_timestamp.  How can I capture the data in NAME and DESCRIPTION in the log table? 
    I have tried
    create trigger ADDRESS_TYPES_TRIGGER_D
    AFTER DELETE ON "MEDPORTAL"."MEDPORTAL_XS.data::ADDRESS_TYPES"
    REFERENCING OLD ROW AS thisRow
    FOR EACH ROW
    and
    create trigger ADDRESS_TYPES_TRIGGER_D
    AFTER DELETE ON "MEDPORTAL"."MEDPORTAL_XS.data::ADDRESS_TYPES"
    FOR EACH ROW
    But I cannot capture the data.  I am on the AWS rev 70 image (1.0.70.386119)
    Is the DELETE trigger capable of capturing the data?

    If you can add a step to disable backup job start of ETL and enable backup job after ETL completes.
    exec msdb..sp_update_job @job_name = 'LS backup Job Name', @enabled = 0 --Disable
    exec msdb..sp_update_job @job_name = 'LS backup Job Name', @enabled = 1 --Enable
    create a record in a table:
    In those line you can create a new job as well which will check record in table if its 0(ETL completed) then enable the backup job and if its 1(ETL running/started) then disable the job. This job will run every 5 mins to check the flag in table. Depending
     on ETL status it will enable or disable tlog backup job that way you will be able to resume log shipping without delay. 

  • Cancel a delete action in a trigger

    Hi,
    I would like to know the best way to cancel a delete in a trigger, I want to instead change a Field called Active to 'N'
    My application is built on views that exclude records with this flag set to 'N'
    I have found the IF DELETING ('id') THEN syntax which should be fine to capture the delete, but what is the best way to then cancel the delete?
    Thanks in advance
    cl3ft

    Hi,
    I don't think you can cancel the delete action in the trigger if you want to perform another action afterwards. You can cancel the delete action by raising an exception (e.g. with RAISE_APPLICATION_ERROR(-20001,'No delete allowed') ;)
    To cancel the delete action and perform an action afterwards I would suggest to create a view on the table containing all columns. On that view, you can define an INSTEAD OF DELETE trigger. In this trigger, simply update the column and do not perform any delete action. This should do the job for you.
    Regards
    Stephan

  • How to Commit transaction even the trigger fails?

    Hi Everyone,
    I got a situation here, i have two tables and a trigger. A main table and a log table. Whenever  a change happens in the main transaction ,   a log details will be inserted into the log table.
    Am using sql server 2000 and "For insert,update,delete" in one trigger. 
    I am in need of commiting the original transaction even if the trigger fails. I mean the main table is so important for me, so all the transaction should commit in the main table no matter if some transactions details missed in the log table.
    I tried with
    begin try
    -- statement
    end try
    begin catch
    commit transaction
    end catch.
    But it doesnt works. My insert fails whenever the trigger fails. i want the transaction should continue even if the trigger fails...
    Pls suggest me how to do it.. Thanx for your help

    If the trigger action is optional, it should not be in a trigger. The idea of a trigger is that it is part of the statement, so if the trigger fails, the statement fails.
    As for what your alternatives are, it depends on which version on SQL Server you are using. You first say SQL 2000, but then you discuss TRY CATCH which was added in SQL 2005.
    What always works is to have a separate process that scans the main table for changes and the update the log. It can be difficult to identify the changes, though. It helps if you are on SQL 2008 where you can use Change Tracking.
    Another solution is to put a message on a Service Broker queue in the trigger, and then you have an activation procedure where you perform the operation with the log table. Of course, the SEND operation may fail, and you are back on square one. But it may
    be less likely that this fails than producing the log operation if this is complex and fragile.
    Also, a possibility is to add this statement to the trigger:
    SET XACT_ABORT OFF
    In this case, some errors in the trigger will not cause the statement to fail. More precisely, not errors that under normal circumstances terminates only the current statement, for instance PK violations, NOT NULL errors. There are still
    plenty of errors that always aborts the batch and rolls back the open transaction. For instance, conversion errors often rolls back the transaction. Note that SET XACT_ABORT only has effect in SQL 2005 or later.
    Erland Sommarskog, SQL Server MVP, [email protected]

  • BRF+ Deleting functions within object nodes

    Hi Experts,
    We are a large FMCG company and are implementing SAP Master Data Governance module for managing our material master data.
    Hence, we have chosen BRF+ as the business rule engine to drive SAP MDG. SAP MDG version is EHP5
    To create a ruleset, I initially create an object node within the 'Trigger tab' in the catalog. This object node is created with a naming convention DERIVE_ENTITY_ATTRIBUTE. I have then successfully created a function within the object and defined a ruleset as well.
    Now if I delete the object node; it gets deleted from the trigger function tab. However if I create a new object node with a similar function, the system does not allow me to create the function as it throws a warning message stating that the function still exists.
    Hence I wanted to know HOW DO I DELETE THE FUNCTION if the Object node for that function has already been deleted?
    Is there any option to search the function and delete it?
    Thanks in advance
    Edited by: Reenav on Nov 29, 2011 12:29 PM

    Hi Carsten,
    Where do you actually restore an object though?  I don't see a button on the UI. 
    I have deleted an object by mistake, but since I don't have versioning turned on I cannot do a version restore.  However I can still see the deleted object since it's only logically deleted?
    If you do not have versioning turned on is it then impossible to restore?
    Thanks,
    Lee

  • How can i Delete the data from three tables at a time  using same key.

    I am New to Oracle ADF, I have a Requirement Like these, I have three tables like Employee,Salaries,Teams all of these are having one common EmpNo as common attribute, I have Search form these will return the all the employees related to that search query, when i click on Delete button the particular employe Data should delete from all the three tables based on the EmpNo.
    Any Help is appreciable..

    1) The easiest way is to mark the foreign key constraints from SALARIES to EMPLOYEES and from TEAMS to EMPLOYEES as ON DELETE CASCADE. The DB server will then delete the necessary rows whenever you delete an employee row.
    2) Another way is to implement a Before-Delete-Row DB trigger on the EMPLOYEES table where you can delete the related rows in the other tables (have in mind, that if you have foreign keys you may get a Mutating Table Exception, so this approach might be not very good).
    3) An ADF way is to implement a custom EntityImpl class for the Employee entity and to override the remove() method where you can lookup the related TeamMember and Salary entities (through EntityAssoc accessors) and invoke their remove() methods too.
    4) Another ADF way is to implement a custom EntityImpl class for the Employee entity and to override the doDML() method where you can delete the necessary rows in SALARIES and TEAMS tables through JDBC calls whenever a DELETE operation is being performed on the underlying Employee entity.
    Dimitar

  • Help me in creating a Trigger for Insert and Update Options

    Hi
    Please help me in creating a Trigger .
    My requirement is that after insert or update on a Table , i want to fire an event .
    I have started this way ,but doesn't know how to fully implement this .
    say i have a dept table
    CREATE TRIGGER DepartmentTrigger
    AFTER INSERT ON Dept
    BEGIN
    INSERT INTO mytable VALUES("123","Kiran");
    END DepartmentTrigger;
    Please tell me how can i put the Update option also .
    Thanks in advance .

    Please tell me how can i put the Update option also .Add "Or Update". ;-)
    Here are a few suggestions, but you definitely need to refer to the manual page that the previous poster suggested.
    CREATE OR REPLACE TRIGGER DepartmentTrigger
    AFTER INSERT Or Update ON Dept
    BEGIN
    INSERT INTO mytable VALUES(:new.Dept,'DEPT ADDED OR CHANGED');
    END DepartmentTrigger;
    The "Or Replace" means you can replace the trigger while you're developing without having to type in a drop statement every time. Just change and rerun your script, over and over until you get it right.
    Adding "Or Update" or "Or Delete" makes the trigger fire for those events too. Note, you may want seperate triggers in different scripts and with different names for each event. You have to decide if your design really does the same thing whether it's an insert or an update.
    :new.Dept is how you would refer to the changed vale of the Dept column (:old.Dept is the prior value). I changed the double quotes on the string in the VALUES clause to single quotes.
    Andy

  • Need help in deleting multiple tables

    Hi,
    In one of my scenario i want to delete One record from the table, but there are some child and sub child exist for the table. And the on delete cascade is not set fro any of the table.
    Structure of my table,
    Table-1
    tab1_pk
    tab1_name
    Table-2
    tab2_pk
    tab1_pk
    Table-3
    tab3_pk
    tab2_pk
    i want to delete the record from Table-1 and all the related record of Table-2 and Table-3 in a single query.
    Plz help

    Dear 786725,
    What has just came to my mind at first sight is that you can create a trigger for your approach. I don't think that a single query will delete some rows from more than one table.
    Please go to the http://tahiti.oracle.com , select your database version and search for the after trigger. Hint: You may need to use the FOR EACH ROW clause and you again may need to use :old :new parameters in the trigger to have the information of what has just been deleted from the relevant table.
    Hope That Helps.
    Ogan
    Edited by: Ogan Ozdogan on 05.Ağu.2010 19:00
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_7004.htm#SQLRF01405
    http://download.oracle.com/docs/cd/B19306_01/appdev.102/b31695/dialogs.htm#sthref454
    4.24 Create Trigger
    The following information applies to a trigger, which is which is a stored PL/SQL block associated with a table, a schema, or the database, or an anonymous PL/SQL block or a call to a procedure implemented in PL/SQL or Java. The trigger is automatically executed when the specified conditions occur.
    Schema: Database schema in which to create the trigger.
    Name: Name of the trigger. Must be unique within the database.
    Add New Source in Lowercase: If this option is checked, new text is entered in lowercase regardless of the case in which you type it. This option affects only the appearance of the code, because PL/SQL is not case sensitive in its execution.
    Trigger tab
    Trigger Type: The type of object on which to create the trigger: TABLE, VIEW, SCHEMA, or DATABASE. (The remaining items depend on the type of trigger.)
    Table Owner or View Owner: For a trigger on a table or a view, the name of the owner of the table or the view.
    Table Name or View Name : For a trigger on a table or a view, the name of the table or the view.
    Before or After: For a trigger on a table, select Before to cause the database to fire the trigger before executing the triggering event, or select After to cause the database to fire the trigger after executing the triggering event.
    Statement Level or Row Level: For a trigger on a table, Statement Level fires the trigger once before or after the triggering statement that meets the optional trigger constraint defined in the WHEN condition; Row Level fires the trigger once for each row that is affected by the triggering statement and that meets the optional trigger constraint defined in the WHEN condition.
    Insert, Update, Delete: For a trigger on a table or a view, Insert fires the trigger whenever an INSERT statement adds a row to a table or adds an element to a nested table; Update fires fire the trigger whenever an UPDATE statement changes a value in one of the columns specified in Selected Columns (or in any column if no columns are specified); Delete fires the trigger whenever a DELETE statement removes a row from the table or removes an element from a nested table.
    Referencing - Old: For a trigger on a table, the correlation names in the PL/SQL block and WHEN condition of a row trigger to refer specifically to old value of the current row.
    Referencing - New: For a trigger on a table, the correlation names in the PL/SQL block and WHEN condition of a row trigger to refer specifically to new value of the current row.
    Available Columns: For a trigger on a table, lists the columns from which you can select for use in an Update trigger definition.
    Selected Columns: For a trigger on a table, lists the columns used in an Update trigger definition.
    When: For a trigger on a table, an optional trigger condition, which is a SQL condition that must be satisfied for the database to fire the trigger. This condition must contain correlation names and cannot contain a query.
    Schema: For a trigger on a schema, the name of the schema on which to create the trigger.
    Available Events: For a trigger on a schema or database, lists events from which you can select for use in the trigger definition.
    Selected Events: For a trigger on a schema or database, lists events used in the trigger definition.
    DDL tab
    This tab contains a read-only display of a SQL statement that reflects the current definition of the trigger.
    "

  • Deleting Duplicate entries from Internal tbale

    Hi All,
    I have used this code to delete duplicate entries from an internal table.
      DELETE ADJACENT DUPLICATES FROM IT_KOSTL COMPARING KOSTL hours.
    After this statment, still the internal table will remain with a duplicate row.
    Earlier table content before the delete statement:
    Lno  KOSTL                PRCTR                       hours                      hours1 
    1    2081010205     0000208101                 5525.000          1574.500
    2    2081010105     0000208101       105162.000     73854.750
    3    2081010105     0000208101       105162.000     73854.750
    4    2081010205     0000208101        5525.000     1574.500
    The Table gets modified after execution of DELETE statement as follows.
    Lno  KOSTL                PRCTR                       hours                      hours1 
    1    2081010205     0000208101                 5525.000          1574.500
    2    2081010105     0000208101       105162.000     73854.750
    3    2081010205     0000208101        5525.000     1574.500
    Why the line 3 is still present in the table?
    I hope as per that syntax, this line too should get delete.... Is it right?
    Basically i would like to delete both line 3 and line 4 from....
    How to resolve this issue?
    Please help me out....
    Regards
    Pavan
    What might be the reason?

    >
    Pavan Sanganal wrote:
    >   DELETE ADJACENT DUPLICATES FROM IT_KOSTL COMPARING KOSTL hours.
    > Why the line 3 is still present in the table?
    >
    > I hope as per that syntax, this line too should get delete.... Is it right?
    >
    Let me answer you all doubts.
    Why the line 3 is still present in the table?
    Actually it's not 3rd line, it's 2nd line.3rd line were deleted.
    when delete adjecent duplicates trigger than it would delete lower line(3rd in your case) not upper line.
    I hope as per that syntax, this line too should get delete.... Is it right?
    NO.

  • Controlling the output when purhcsae order item is deleted

    HI
    Here is our scenario, we have two outputs automatically determined ( by condition records) when a purhcase order is changed, now when we delete the purchse order item we want only one put type to be triggered and not the other one.
    NEU    - When the PO line item is deleted  we want  trigger this output
    NEU1  - When the PO line item is deleted  we dont want to trigger this output
    Obviously we cannot  use "Fields Relevant to Printouts of Changes"  config to deactivate the EKPO-LOEKZ field as it impacts both the outputs.
    Is there a way to achieve this?
    Thx,
    Krishna.

    Hi Mohan,
    Thanks for the reply, we did try to use that requiremnet option but then how do you know if the purchase order item is being  deleted?  You have this field in the routinue KOMKBEA-DRUVO which gets pouplated with '2' means change.
    Obviously you cannot do a select query on EKPO because the PO is not yet updated at this point of time.
    Thx
    Krishna.

Maybe you are looking for

  • Remote for 2gen Touch

    Does anyone know of a reliable remote to use with a 2nd gen. Touch? I have the Monster iEZClick, but it stopped working when I upgraded to iOS4. I already changed the battery in the iEZClick remote with no luck. I also am not interested in the earbud

  • How can I check for directory creation?

    Hi, I want to check whether I can create a directory at a particular location. Let's say at c:\windows, can create a directory called c:\windows\mydir. But I won't be knowing the parent location (i.e., c:\windows here) at compile time. And I would al

  • HP LaserJet 2820 All-in-One fails to print on right side of the page

    I have HP LaserJet 2820 All-in-One for 1.5 years now and before the first set of cartridges run out of ink, the printed page comes out blur or no printing on the right side of the page. No smear on the right page.  It doesn't matter if I used color o

  • Backup to external drive - best method?

    Hi - Just got a backup drive for a mac without Time machine. What is the best way to do a full backup? Can the Mac HD icon be dragged & dropped to the drive to copy everything? Also - is there a way, without Time Machine, to only add new/changed file

  • Installing XP on Boot Camp help for 1st Generation Mac Pro

    hi all, i am trying to make my way through the documentation so that i can get WINDOWS XP back on my first generation Mac Pro since i need to run some programs for work. the old drive that i had this information on was running Snow Leopard (I believe