Linking Table to view

Pulling my hair out here - how do I link a Table to a View?

Please get a book on basic RDBMS. The term "link" is from 1970's network databases and refers to simple pointer chains between records (rows are not records!) used for traversals. If you meant "join", then a VIEW is merely a virtual
table and you use it like any other table -- reference it by name and let the SQL decide how to handle the physical access. 
--CELKO-- Books in Celko Series for Morgan-Kaufmann Publishing: Analytics and OLAP in SQL / Data and Databases: Concepts in Practice Data / Measurements and Standards in SQL SQL for Smarties / SQL Programming Style / SQL Puzzles and Answers / Thinking
in Sets / Trees and Hierarchies in SQL

Similar Messages

  • View for a network node or link table

    Can a view be used for a nework node or link table? The process sdo_net.validate_network hangs when I try to validate a network based on views for the node and link tables.

    I am using a logical model. The sql statement (checking link/node relationship) that hangs is:
    select count(a.link_id) from vlinks a
    where not exists
    select * from vnodes b
    where b.node_id = a.start_node_id or b.node_id = a.end_node_id
    I gather there is a concurrency issue with my links view because it joins a table with itself. I have a link table that has the start and end nodes defined on two records. Here is my view script:
    create or replace view vlinks
    (link_id, link_name, start_node_id, end_node_id, link_type, active, link_level, cost, parent_link_id)
    as
    select a.id, 'Link '||a.id, a.nodeid, b.nodeid, 'simple', 'Y',1,0,''
    from vnodes a, vnodes b
    where a.seq=1 and b.seq>1 and a.id = b.id
    I can create tables from my views and validate them successfully through sdo_net.validate_nodes_schema, sdo_net.validate_links_schema, and sdo_net.validate_network.
    I can analyze the network model through the Java API using the reachable nodes, shortest path, and spanning tree methods without any problems.
    I guess I'll validate my view links by counting the total number of links and subtracting the number of links joined successfully at the start and end nodes - if 0 then all links are valid. E.g.:
    select count(link_id) from
    select link_id from vlinks
    minus
    select a.link_id from vlinks a, vnodes b, vnodes c
    where a.start_node_id = b.node_id
    and a.end_node_id = c.node_id

  • Linking Tables to Oracle Views

    I am not able to see the PKs in MS-ACCESS after creating a linked table to a view within Oracle. The views were created using Select * from the base table which is a materialized view. No WHERE clause in the view.
    Also, why do I get an error when creating a linked table to a materialized view in Oracle. I am getting the following error when creating the linked table:
    "Invalid filed definition M_ROW$$ in definition of index or relationship.
    Thanks,
    Todd Schaberg
    [email protected]

    This is a known problem. We're trying to work with the materialized views folks to get this resolved.
    As a workaround, you can create a view of the materialized view and link to that.
    Justin Cave
    ODBC Development

  • Reset changes in view link table when cancel popup

    Hi,
    I'm using jdeveloper 11.1.2.3.0
    I have a form with a table which I edit with a popup.
    inside this popup I have a view link table.
    On cancel the popup I would like to clear the changes that were made in the view link table.
    I was trying this code:
    public void popupCancelListener(PopupCanceledEvent popupCanceledEvent) {
            DCIteratorBinding it= getBindings().findIteratorBinding("MyViewLinkIterator");
            ViewObject vo = it.getViewObject();
            vo.clearCache();
            vo.executeQuery();
    But it didn't work, when I open the popup again I see the changes that were made in the view link.
    they weren't reset.
    Any idea?
    Thanks a lot!

    It doesn't help.
    As I check, If I'm creating a new row
    after
      vo.clearCache(); 
      vo.executeQuery();
    the row is still existing.
    How could it happen?

  • URGENT:  CR2011 Unable to see Linked Tables (Viewing Links)

    In select expert tables are listed but when clicking on the links tab the tables do not appear.  This occurs on tables created in CR2010 (with links appearing) and opened in 2011 AND with new reports created in 2011.  Service Pak download did not fix problem.

    Thanks for your reply.  We are using SQL Server 2008 databases.  I would think that this would not be a problem with CR2011 since we can see the linking tables in a CR Version 10 install.  The other thing I noticed is that the linking icon does not show up as it does in the other install so I'm thinking that it might be a driver issue or an install issue?
    Also tried to right click on the Options but the only thing close to our problem is the Smart-Linking which I turned on with no results.  If you click on Order Link you can see the SQL links (not in graphic form) but can't add or delete anything.  Some of our linking can be quite complex so we need to be able to drag and drop the links.
    I would think that the product would work the same as in previous versions.
    Thanks!

  • How to Bind a Combo Box so that it retrieves and display content corresponding to the Id in a link table and populates itself with the data in the main table?

    I am developing a desktop application in Wpf using MVVM and Entity Frameworks. I have the following tables:
    1. Party (PartyId, Name)
    2. Case (CaseId, CaseNo)
    3. Petitioner (CaseId, PartyId) ............. Link Table
    I am completely new to .Net and to begin with I download Microsoft's sample application and
    following the pattern I have been successful in creating several tabs. The problem started only when I wanted to implement many-to-many relationship. The sample application has not covered the scenario where there can be a any-to-many relationship. However
    with the help of MSDN forum I came to know about a link table and managed to solve entity framework issues pertaining to many-to-many relationship. Here is the screenshot of my application to show you what I have achieved so far.
    And now the problem I want the forum to address is how to bind a combo box so that it retrieves Party.Name for the corresponding PartyId in the Link Table and also I want to populate it with Party.Name so that
    users can choose one from the dropdown list to add or edit the petitioner.

    Hello Barry,
    Thanks a lot for responding to my query. As I am completely new to .Net and following the pattern of Microsoft's Employee Tracker sample it seems difficult to clearly understand the concept and implement it in a scenario which is different than what is in
    the sample available at the link you supplied.
    To get the idea of the thing here is my code behind of a view vBoxPetitioner:
    <UserControl x:Class="CCIS.View.Case.vBoxPetitioner"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:v="clr-namespace:CCIS.View.Case"
    xmlns:vm="clr-namespace:CCIS.ViewModel.Case"
    mc:Ignorable="d"
    d:DesignWidth="300"
    d:DesignHeight="200">
    <UserControl.Resources>
    <DataTemplate DataType="{x:Type vm:vmPetitioner}">
    <v:vPetitioner Margin="0,2,0,0" />
    </DataTemplate>
    </UserControl.Resources>
    <Grid>
    <HeaderedContentControl>
    <HeaderedContentControl.Header>
    <StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
    <TextBlock Margin="2">
    <Hyperlink Command="{Binding Path=AddPetitionerCommand}">Add Petitioner</Hyperlink>
    | <Hyperlink Command="{Binding Path=DeletePetitionerCommand}">Delete</Hyperlink>
    </TextBlock>
    </StackPanel>
    </HeaderedContentControl.Header>
    <ListBox BorderThickness="0" SelectedItem="{Binding Path=CurrentPetitioner, Mode=TwoWay}" ItemsSource="{Binding Path=tblParties}" />
    </HeaderedContentControl>
    </Grid>
    </UserControl>
    This part is working fine as it loads another view that is vPetioner perfectly in the manner I want it to be.
    Here is the code of vmPetitioner, a ViewModel:
    Imports Microsoft.VisualBasic
    Imports System.Collections.ObjectModel
    Imports System
    Imports CCIS.Model.Party
    Namespace CCIS.ViewModel.Case
    ''' <summary>
    ''' ViewModel of an individual Email
    ''' </summary>
    Public Class vmPetitioner
    Inherits vmParty
    ''' <summary>
    ''' The Email object backing this ViewModel
    ''' </summary>
    Private petitioner As tblParty
    ''' <summary>
    ''' Initializes a new instance of the EmailViewModel class.
    ''' </summary>
    ''' <param name="detail">The underlying Email this ViewModel is to be based on</param>
    Public Sub New(ByVal detail As tblParty)
    If detail Is Nothing Then
    Throw New ArgumentNullException("detail")
    End If
    Me.petitioner = detail
    End Sub
    ''' <summary>
    ''' Gets the underlying Email this ViewModel is based on
    ''' </summary>
    Public Overrides ReadOnly Property Model() As tblParty
    Get
    Return Me.petitioner
    End Get
    End Property
    ''' <summary>
    ''' Gets or sets the actual email address
    ''' </summary>
    Public Property fldPartyId() As String
    Get
    Return Me.petitioner.fldPartyId
    End Get
    Set(ByVal value As String)
    Me.petitioner.fldPartyId = value
    Me.OnPropertyChanged("fldPartyId")
    End Set
    End Property
    End Class
    End Namespace
    And below is the ViewMode vmParty which vmPetitioner Inherits:
    Imports Microsoft.VisualBasic
    Imports System
    Imports System.Collections.Generic
    Imports CCIS.Model.Case
    Imports CCIS.Model.Party
    Imports CCIS.ViewModel.Helpers
    Namespace CCIS.ViewModel.Case
    ''' <summary>
    ''' Common functionality for ViewModels of an individual ContactDetail
    ''' </summary>
    Public MustInherit Class vmParty
    Inherits ViewModelBase
    ''' <summary>
    ''' Gets the underlying ContactDetail this ViewModel is based on
    ''' </summary>
    Public MustOverride ReadOnly Property Model() As tblParty
    '''' <summary>
    '''' Gets the underlying ContactDetail this ViewModel is based on
    '''' </summary>
    'Public MustOverride ReadOnly Property Model() As tblAdvocate
    ''' <summary>
    ''' Gets or sets the name of this department
    ''' </summary>
    Public Property fldName() As String
    Get
    Return Me.Model.fldName
    End Get
    Set(ByVal value As String)
    Me.Model.fldName = value
    Me.OnPropertyChanged("fldName")
    End Set
    End Property
    ''' <summary>
    ''' Constructs a view model to represent the supplied ContactDetail
    ''' </summary>
    ''' <param name="detail">The detail to build a ViewModel for</param>
    ''' <returns>The constructed ViewModel, null if one can't be built</returns>
    Public Shared Function BuildViewModel(ByVal detail As tblParty) As vmParty
    If detail Is Nothing Then
    Throw New ArgumentNullException("detail")
    End If
    Dim e As tblParty = TryCast(detail, tblParty)
    If e IsNot Nothing Then
    Return New vmPetitioner(e)
    End If
    Return Nothing
    End Function
    End Class
    End Namespace
    And final the code behind of the view vPetitioner:
    <UserControl x:Class="CCIS.View.Case.vPetitioner"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:vm="clr-namespace:CCIS.ViewModel.Case"
    mc:Ignorable="d"
    Width="300">
    <UserControl.Resources>
    <ResourceDictionary Source=".\CompactFormStyles.xaml" />
    </UserControl.Resources>
    <Grid>
    <Border Style="{StaticResource DetailBorder}">
    <Grid>
    <Grid.ColumnDefinitions>
    <ColumnDefinition Width="Auto" />
    <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <TextBlock Grid.Column="0" Text="Petitioner:" />
    <ComboBox Grid.Column="1" Width="240" SelectedValuePath="." SelectedItem="{Binding Path=tblParty}" ItemsSource="{Binding Path=PetitionerLookup}" DisplayMemberPath="fldName" />
    </Grid>
    </Border>
    </Grid>
    </UserControl>
    The problem, presumably, seems to be is that the binding path "PetitionerLookup" of the ItemSource of the Combo box in the view vPetitioner exists in a different ViewModel vmCase which serves as an ObservableCollection for MainViewModel. Therefore,
    what I need to Know is how to route the binding path if it exists in a different ViewModel?
    Sir, I look forward to your early reply bringing a workable solution to the problem I face. 
    Warm Regards,
    Arun

  • APEX_APPLICATION_FILES: ORA-00942: table or view does not exist

    Hello,
    As my first APEX task I am attempting the upload/download demo on http://download.oracle.com/docs/cd/B32472_01/doc/appdev.300/b32469/up_dn_files.htm
    The ultimate goal is to store PDF files in the database.
    In order to complete step 1: To create an application using the Create Application Wizard:
    - I first created a user from SYSTEM called 'myapp'
    - Next I logged into 'myapp' to continue the exercise. (I am wondering if that is where I am going wrong... If so, please clarify)
    - Knowing that I would want to save the upload to a table I created a table with a BLOB
    I did the steps for the upload and ran the application - no errors to there.
    Next I needed to "To create a report on APEX_APPLICATION_FILES:".
    I started the wizard as instructed. When I pasted the SELECT ... FROM APEX_APPLICATION_FILES, I got the table or view does not exist. A quick review of the TABLES tab shows only the tables that I created. Not any of the system tables or views.
    I logged back in as SYSTEM and reviewed the 'rights' given the user 'myapp'. All were checked.
    I knew nothing of Oracle when I installed XE, so I took defaults or whatever the install doc said to do. Is that part of the problem? It is clear that I do not have rights to see that table, but I also do not see the table when logged in as SYSTEM.
    Any insight appreciated,
    Rick

    Thanks for the reply.
    Version is:
    Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product
    PL/SQL Release 10.2.0.1.0 - Production
    CORE 10.2.0.1.0 Production
    TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
    NLSRTL Version 10.2.0.1.0 - Production
    Database      
    NAME     XE
    CREATED     10/13/2006 08:04:21 PM
    RESETLOGS_TIME     10/13/2006 08:04:25 PM
    Install Version 10.2.1015
    Regarding the code links, this one looks like what I need:
    DECLARE
    l_bfile BFILE;
    l_blob BLOB;
    BEGIN
    INSERT INTO tab1 (col1)
    VALUES (empty_blob())
    RETURN col1 INTO l_blob;
    l_bfile := BFILENAME('IMAGES', 'MyImage.gif');
    DBMS_LOB.fileopen(l_bfile, Dbms_Lob.File_Readonly);
    DBMS_LOB.loadfromfile(l_blob, l_bfile, DBMS_LOB.getlength(l_bfile));
    DBMS_LOB.fileclose(l_bfile);
    COMMIT;
    END;
    Is the 'BFILENAME' function that causes the 'get a filename' dialog box of Windows to open for the user to find which file to upload?
    I'm going off to look for a newer version of APEX, thanks.

  • Crystal report XI error while Linking tables

    We have just purchased Crystal Report XI  license copy  but as we going to create new report there is problem in linking tables
    i.e while pressing LINK tab after selecting ODBC databse  name  application going shut down.Please suggest.Thanks in advance

    I would make verify the database within Crystal report and then re publish it again. It seems it doesn't get the connection to the db.
    Have you refreshed the database within Crystal Reports?
    As Graham said, does it open in Crystal Viewer?
    another thing would be to add the DSN (System DSN) onto your client machine as well. Maybe it is not getting a right connection.
    Try it and let us know.
    Kind Regards
    Jehanzeb

  • Maximum number of columns  in a table or view is 1000

    Post Author: TinaReifer
    CA Forum: Formula
    I am trying to create a direct link from Tririga / Oracle database into Crystal XI.  The data I am attempting to pull is from the RETransaction (Escalations). The error I keep receiving is shown below.  Has anyone run across this problem and found a solution that can be shared?
    Very Appreciative for any feedback.
    Tina Reifer
    "Failed to retrieve data from the database.
    Details: HY000:&#91;Oracle&#93;&#91;ODBC&#93;&#91;Ora&#93;ORA-01792: maximum number of columns  in a table or view is 1000
    &#91;Database Vendor Code:  1792&#93;"

    Post Author: synapsevampire
    CA Forum: Formula
    Try posting your software, its version, and the type of connectivity you're using for oracle.
    Older versions of Crystal used a proprietary Oracle ODBC driver that came with Crystal, but you should SWITCH away from using ODBC anyway, not sure why you elected to use it, it's slower and more problematic.
    You'll see Oracle Server listed as a data source, that is generally the best connectivity to use.
    Also, what version of Oracle is it, and what Oracle client are you using?
    You might need your Oracle dbas assistance here.
    Anyway, the error is not a Crystal error, it's being raised by the ODBC driver, and Oracle used to have a maximum of 1024 colums I think it was...been a while...
    -k

  • Problem in Table maintenance view

    Hi all,
    i am getting some problem in table maintenance view.
    In my table i have some fields and when i created my table maintenance view , it is created , but when i try  to see it in SM30 its not showing my fields and even i am unable to create a  new entry. when i click
    new entries its going back to the sm30 screen..
    How to go abt it
    please help me

    Hello,
    Have you created the table maintanence view the right way.
    You can get good help from below link: [[http://www.****************/Tutorials/ABAP/TableMaintenance/demo.htm]]
    Also, please check the Delivery Class and Data Browser/Table View Maint. in the Delivery and Maintanence tab of the table.
    Thanks,
    Jayant
    Edited by: Jayant Sahu on Nov 24, 2008 3:00 PM

  • Table maintenance view - tcode

    Hi experts,
    We have a tcode (already in production) created for table maintenace view of z-table.
    Everything is working fine.
    Now I added one new field to the z-table and changed the table maintenance view accordingly. In SM30 I can maintain the table without difficulties - the new field is visible and maintenable. However, when I call the transaction code created for this view, it doesn't have the new field yet.  I tried a lot but without success to update the tcode accordingly.
    How can I get the tcode adjusted with the new field?
    Thanks for your advise and help in advance!
    Your feedback will be << appreciated >>.
    Regards,
    Sally
    Please do not offer rewards.
    Edited by: Rob Burbank on Dec 6, 2009 5:22 PM

    It's about one week you asked the question, but I answer in case you didn't understand what happened:
    First, screens 1000-1010 can't be used in a table maintenance dialog (an error is mentioned by SAP when you try to use these numbers). So, I really don't understand how you can get 1000 in your table view!
    So, I think that your transaction is linked to a custom program (not the SM30 view). So you just need to adapt manually the custom program. Note: maybe the program is a partial copy of the SM30 function group, so maybe you may just copy the dynpro 1000 of the SM30 function group  to the dynpro 1001 of your custom program...
    Note: when you want to create a transaction which is linked to a table maintenance view (SM30), you must define a Z* transaction of type parameter, with reference to SM30 transaction, select "skip initial screen", do not choose any dynpro, and choose VIEWNAME = your view and UPDATE = X as parameter values.

  • Table Maintenance & View Clusters

    Hi,
    I am trying to generate table maintenance views and group them using a view cluster. The following is what I have done so far.
    I created 2 tables. TAB_A is the primary table with TAB_B the description by language table. They are not linked to each other in any way (even though they probably should).
    TAB_A - FLD_A (key, char2)
                  FLD_B (date)
                  FLD_C (time)
                  FLD_D (fltp16)
    TAB_B - FLD_E (key, char2, same type as FLD_A)
                  FLD_F (key, char3, language field)
                  FLD_G (char50)
                  FLD_H (date)
                  FLD_I (time)
                  FLD_J (fltp16)
    I then created 2 maintenance views based on the tables above.
    VIEW_A - FLD_A
              FLD_B (hidden)
              FLD_C (hidden)
              FLD_D (hidden)
    VIEW_B - FLD_E
              FLD_F (hidden)
              FLD_G
              FLD_H (hidden)
              FLD_I (hidden)
              FLD_J (hidden)
    I've then used the table maintenance generator to create the screens as well as the unique events to populate the hidden fields.
    Using SE54, I've created a view cluster. I have added both of my views to the view cluster as follows:
    View/table       TAB_A          TAB_B
    Predecess.       TAB_A          TAB_B
    Dep              R              R
    Pos              1              2
    Start            true
    I have clicked the field-dependence button and generated the dependencies successfully.
    So far everything is okay.
    I now need to change the hierarchy in the cluster, so that TAB_B is dependent on TAB_A.
    What I have tried so far is to add a foriegn key to TAB_B (this worked but is not an ideal solution).
    I also changed the dependency type in the cluster to 'S' (only worked in conjunction with FK)
    The documentation indicates that what I am trying to do is possible, but I'm not sure how.
    So do any of you bright people out there have any ideas?
    Be gentle I'm new to both the forum and SAP in general (hence being given table maintenance).
    Kind regards
    Chris

    In my experience, cluster maintenance view Table 1 keys where always used as foreign keys in Table 2. Then these common fields were used in dependencies and subset.
    - Creation of maintenance view on table 1
    - Then generation of maintenance dialog on Table 1
    - Creation of maintenance view on table 2 defining the keys of Table 1 as subset fields (test the dialog, a popup should appear with the subset fields)
    - Then generation of maintenance dialog on Table 2
    - Creation of the cluster generating the dependency between Table 1 and itself (without specifying any field) and between Table 1 and table 2 using the subset fields (should work automatically)
    Look also at [Create a View Cluster|http://help.sap.com/saphelp_nw04/helpdata/en/d0/999249b2aa11d1a5700000e82deaaa/frameset.htm]
    Regards

  • How to hide a field from table maintenance view?

    Hi,
    How to hide a field from table maintenance view? 
    The field is used for data created date. I need to hide it from display.
    Thanks

    Chk this link.
    http://help.sap.com/saphelp_nw04/helpdata/en/66/33f52010dd11d6999300508b5d5211/frameset.htm
    Maintenance Attributes
    You can assign a maintenance attribute P to individual fields in the maintenance view definition in the Dictionary (SE11). It can be  H (hidden)
    H (hidden)
    A field flagged H is not displayed on the screen. This field must also be filled in the background by a routine at an event.
    The system writes R and H fields to the database like all other fields when a new data record is saved.

  • How can I list all users who have access to a particular TABLE or VIEW

    Hi,
    Can someone tell me how I can list all users who have access to a particular TABLE or VIEW.
    Abhishek

    Hi,
    Take a look on this link: http://www.petefinnigan.com/tools.htm
    Cheers

  • How to see the linked table in oracle 8.0

    hi,
    i am using oracle 8.0, i have some 8 to 9 tables in it, some of them are linked, is there any way i could see the linked tables, if you do know any utility pls let me know.
    regards
    user456932

    i am using oracle 8.0, i have some 8 to 9 tables in
    it, some of them are linked, is there any way i could
    see the linked tablesI understand from your question that you are refering to Referential Integrity. I.e you have Parent Tables with Primary Keys and Child Tables linked with Foreign Keys.
    It is easier to use GUI tools (OEM, Toad etc) to browse through them. In Toad for instance as a start, you can view the SQL Model. There are other Modelling tools you can use as well.
    For the start, you can check USER_CONSTRAINTS and other related dictionary views to find them.
    Here is a small example:
    select      constraint_name
         ,constraint_type
         ,table_name
         ,r_constraint_name
         ,delete_rule
         ,status
    from user_constraints;
    The constraint_type will show P (Primary Key), C (Check), R (Referential) etc
    However, you can use queries to find Object Dependencies in the Database.
    Read more from the SQL Reference Manual to get more knowledge in this area.

Maybe you are looking for

  • Error in log file CallbackDispather

    We've been seeing a random occurance of the following error: Thu May 17 04:27:12 EDT 2001:<I> <Kernel> Address: '39942' in use by: 'weblogic.common.CallbackDispatcher@9c06', can not install 'weblogic.rmi.internal.BasicRemoteInvokable@9c06' Thu May 17

  • Could not find "ADF Data Controls" in ADF tutorial 10.1.3.1.0 chapter 2

    Hi I am currently learning Oracle ADF followed by 10.1.3.1.0 tutorial. ( September 2006 Revision ), I installed Oracle Jdeveloper 10.1.3.2.0 on my pc with remote 10.2.0.2 database connection. In the manual page 2-17, the final step of that chapter, i

  • Linked tables, stored procedures, and locking

    I'm working on an interface between two Oracle systems. I don't know if they're on the same server or not, but they are definitely two different database instances. The plan for this interface is that when a record is created on one of the systems, i

  • Problem : java.nt.SocketPermission

    Hi. I use j2sdk1.4.0 + Apache2 + Tomcat4.0.4 My applet access tomcat servlets to query an Ora9i database. Most of the client W98, NT4 and W-XP can access my applet to query the servlets with the exception of 2. One client uses java 1.3.1_03 and when

  • Major Printing Problem-Need Assistence

    Since updating to 10.4.5 I can no longer print graphic files, except .pdf. iPhoto, Safari, Photoshop no longer print a graphic file, will print text or very small files. Mail, Printshop 2 will print. Word will print text files, but not graphic files.