Remove rows in dba_rep views.
I am having trouble removing replication from a master definition site. I can't create a new replicated environment while an old one is still "hanging around".
I thought I removed replication correctly, but the dba_rep views still have data. How do you remove the data in the dba_rep views, or rather how do you completely remove replication? I removed the repadmin user, but that did not help- is there something in catrep.sql that has to be ran?
Further more if I go ahead and install replication again on the server it will fail on generate rep support. Is there an explaination to why creating my rep groups would fail on gen_rep_support??? and not fail on rep-setup-group, add-updated-resolution-group, add-group-to-masters?
1. What is the db version of your Master Def Site?
2. What are the db versions of your other Master sites?
3. Are the database links between the master sites valid?
4. How did you clean up your old environment?
5. Can you post the results from the following queries:
select * from dba_repcat
select * from dba_repcatlog
select gname, dblink, masterdef from dba_repsites6. What errors do you get when you try to create new replication groups and objects?
7. Check if there are invalid objects in SYS and SYSTEM schemas
8. If you have Metalink Access, read Note:122039.1.
Similar Messages
-
Adding/removing rows in TABLEVIEW
Hi. I've got a TABLEVIEW in one of my subscreens. But when load itab into that tableview with 'LOOP AT...' tableview appears but I can't add rows to it. I can't delete existing rows too. What should I add to my programm to have possibility of adding/removing rows from my tablewiev? Greetings. P.
Hi Friend,
To add/delete rows in your table view.
You have to add/delete rows from internal table fro where you are displaying values.
You have to write code in PAI..
In LOOP ... ENDLOOP check the OK_CODE if it is ADD (for eg.) you have to add a blank row to internal table by just passing a blank work area.
And if it is DELETE (for eg.) delete the row of that index (TABLEVIEW-CURRENT_LINE)...
for these two excersies you have to readjust lines of tableview...after taking number of lines from internal table (DESCRIBE TABLE INT_EX LINES WS_LINES
TABLEVIEW-LINES = WS_LINES) write this piece of code in Intialization.
Hope it will solve the problem.
Regards
Krishnendu -
Using Row Repeater - adding a remove row button
I have an input field on my view for users to enter Project Numbers along with an Add Button.
When the user enters a project number & clicks on the add button, I append that project to my row repeater. this is working fine.
In my Context, I defined my row repeater as having 2 attributes: project_num and rem_row.
I bound my row repeater to my context node. I wanted to use a Button element as my rem_row, so a user could click on the icon and I could remove that particular row.
However, I can't bind the Button to the rem_row attribute of my context.
is there a way to find out which row the user selects?what i've done is place a checkbox in the second field and evaluate that on the "on toggle" event. then delete the appropriate row.
this works, but i'd really like an icon there instead of a checkbox and "Remove Row" text -
Hi,
Is there a way to revive a removed row from a ViewObject? E.g. if we remove a row from a certain ViewObject using row.remove() and then commit these changes we sometimes get a SQL exception because other rows still reference the row. We could do a rollback but that mean's rollbacking all views in the application module, it would be nice if we could simply revive the row. We tried row.refresh(REFRESH_UNDO_CHANGES), row.setNewRowState(STATUS_INITIALIZED) but we always get a oracle.jbo.DeadViewRowAccessException when doing that.
Regards,
PeterGood idea, I'd like to see something like this as well.
In the mean time I implemented some pre-delete checks in a JUNavigationBar sub-class, which tries to make sure it's safe to delete some master row (by checking associated viewlinks). Of course this does not always work well, but it helps just a bit. -
Way to rollback only one row of a view object
Is there a way to "rollback" only one row of a view object? That is, two or more rows have been modified but we wish to only restore one of the rows to the original (database) values.
Is there a way to retain all of the current rows in all of the view objects for an application module after issuing a jbo:Rollback?
ThanksIs there a way to "rollback" only one row of a view object? That is, two or more rows have been modified but we wish to only restore one of the rows to the original (database) values.In jdev903, a new method is being added to Row interface to reset the row state to the transaction-original state i.e., rollback the row to it's original values.
Is there a way to retain all of the current rows in all of the view objects for an application module after issuing a jbo:Rollback?No. You may however override before/afterRollback methods on the ViewObjectImpl subclasses to cache the current row key in beforeRollback and restore currency on the default iterator to that rowkey in afterRollback
Thanks -
Creating multi rows in Weekly view for same Att type
Hi All,
This is how we can reproduce the problem
1.Enter working hours against same att type for different dates in the same row in Weekly view of record working time.
2.Go to daily view and come back to weekly view.
3.It creates different rows for the att type for the above dates entered instead of single row
Please let me know the solution
Thanks
Bala DuvvuriSiddharth,
Even I got the same response for the OSS message from SAP.is it due to incompatibility ?
My portal version is EP7.0 SP17
ESS 600 SP13
EA-HR 603 level 0010
SAP_HR 600 level 0036
Thanks
Bala Duvvuri -
How to get color in the final row of table view( table control)
Hi,
iam having a table control displayed with 10 records as output,in that i need to provide a color for the final row since it is total inorder to show difference from other records.
Kindly advise me on this.
Thanks & Regards,
Nehru.Hi Nehru,
Checkout [THIS|Re: set color for a particular row in table view] thread .
[This |http://www.sapdesignguild.org/resources/htmlb_guidance/table.html#at] Might also help you.
Regards,
Anubhav
Edited by: Anubhav Jain on Jan 4, 2009 7:34 AM -
How to Hide Row in table view depend on condition
Dear Friends,
Please any one suggest how to do hide some rows in table depend on condtions.
My Issue is :
I have table with binding componant context controller, with in that some rows are no need to disply in my table, I tried to delete that entities from collection wrapper in do_prepare_output. but that entites are perminatly deleted from model node.
how can achive this with out delete entities from model node and hide some rows in table view.
thanks & RegardsHi Andrew,
Please can you explain alobrate, because i wont' found that method in my implimentation and it's table config like follow
<% IF attr->check_consistency( ) eq abap_true. %>
<chtmlb:configTable xml="<%= lv_xml %>"
id="TextList"
navigationMode="BYPAGE"
onRowSelection="select"
table="//Text/Table"
width="100%"
selectedRowIndex="<%=Text->SELECTED_INDEX%>"
selectedRowIndexTable="<%=Text->SELECTION_TAB%>"
selectionMode="<%=Text->SELECTION_MODE%>"
usage="ASSIGNMENTBLOCK"
visibleRowCount="3"/>
<% ENDIF. %>
thanks & Regards
Ganesh -
Programatically inserting rows of a view object trouble
Hi,
I'm using JDev 10.1.3.3. I'm trying to use the application module specific to my app to create rows in a viewobject. User is on page "view", goes to page "new" and fills out a form which upon submit sends the data to an Application Module method I've exposed to the client. What doesn't happen, is when I add the row of the view object programatically in my view object, it doesn't display on the "view" page until a commit is done (when navigating back from the "new" page".
Here is some sample code of the insert into a composite (not composition) viewobject. When I insert in the new page, it returns to the view page... and the row doesn't show up until commit happens:
//in my application module
public void doiIt2(String name, String badge, String item){
UserItemViewObjRowImpl row = null;
row = (UserItemViewObjRowImpl)getUserItemViewObj1().createRow();
row.setBadge(badge);
row.setBadge1(badge);
row.setItem(item);
row.setName(name);
row.setNewRowState(Row.STATUS_NEW);
getUserItemViewObj1().insertRow(row);
getUserItemViewObj1().executeQuery();
Does anybody know how to get this row to pop in, like using a "creation form" to a table in a view page? What am i doing wrong??? Do I need to do something special in my pagedef of the "view" page?
Thanks,
DanChris,
Thank you for looking at my problem. The row is not inserted into the table (on the view page) with the code I shared. The criteria for the table's VO is simply a select all, with no where clause, so I don't think I'm excluding it... Upon hitting a commit button, the new row does pop in to the table witch is further evidence that the criteria for the VO isn't excluding the new row.
I have tried insertRowAtIndex(), even before I posted this with no luck.
BTW, if I add to the bottom of the code I shared, getDBTransaction().commit; or getDBTransaction().postChanges(), the row does pop into the table when the "view" page is navigated to.
Am I doing something wrong with my construction of my ViewObject? It is a composition (I got that wrong in my initial post) between two entities. The Item entity is updateable, and not a reference using an association between the two entities on the Badge attribute.
I am trying to have new composite VO rows always show up as the first item in a table. I've read that the Row.STATUS_NEW will always do this... so I'm trying to avoid posting/committing the new row. I'm also not above inserting at a particular location, but some of the pages I hope to use this pattern with re-execute the VO every time the page is rendered, instead of just rebinding the Iterator with the VO rowsets. I'm being led to believe that if a Row is posted or committed, re-executing the query will resort all rows based on 'order by', etc.
Also, I have setup a similar yet even more complicated example using three entities. I was able to make this work as expected. The difference is that I was using an ADF Creation Form. ( I did have some work in the model to make all the keys line up though.... posting order... etc.).
I have gotten similar things like this to work with single entities VOs. I'm just having trouble when I do composite VOs. That is supported, isn't it?
Dan -
HOW TO GET THE SELECTED VALUE IN A ROW FROM ONE VIEW TO ANOTHER VIEW?
hi all,
I have a small issue.
i have created two views.In the table of the first view i'm selecting a row and pressing the button it will move to next view.
i am adding some fields manually in the table of the second view and pressing the save button.Here all the values should get updated corresponding to the field which i have selected in the first view.
I want to know how to get the particular field in the selected row from one view to another view.
Kindly help me.Hi,
Any data sharing accross views can be achiveved by defining CONTEXT data in COMPONENT CONTROLLER and mapping it to the CONTEXT of all the views. Follow the below steps.
1. Define a CONTEXT NODE in component controller
2. Define same CONTEXT NODE in all the views where this has to be accessed & changed.
3. Go to CONTEXT NODE of each view, right click on the node and choose DEFINE MAPPING.
This is how you map CONTEXT NODE and same can be accessed/changed from any VIEW or even from COMPONENT CONTROLLER. Any change happens at one VIEW will be automatically available in others.
Check the below link for more info regarding same.
[http://help.sap.com/saphelp_nw04s/helpdata/EN/48/444941db42f423e10000000a155106/content.htm]
Regards,
Manne. -
How to distinguish individual rows in a view?
As well known, we can use rowid to distinguish individual rows in a table. However, who know how to distinguish individual rows in a view? For there are not rowid in a view.
I'm not sure I usnderstand your question, or at least I hope I don't.
We do not use ROWID to distinguish rows in a table: we use unique iodentifiers, that is primary keys. A primary key is stable across the lifetime of a record: a rowid is guaranteed only for the lifetime of a transaction, and then only if we have locked that row.
From this it follows, we should so design our views that each row in the view has a column, or combination of columns, that uniquely identify it.
Cheers, APC -
UDO: Add and Remove rows to/from Matrix.
Hi all,
Yes, I know there are lots of topics about adding and removing rows but I was having trouble with these and I need some expert's opinion.
I'm working with a Document type UDO, with 1 header table (ADAT_ONR) and 1 child table (ADAT_NR1 - MatrixUID = "mtx_NR").
I add the first row when the user chooses the business partner.
If oMatrix.RowCount = 0 Then
oMatrix.AddRow()
oMatrix.AutoResizeColumns()
oMatrix.Columns.Item("V_LineId").Cells.Item(1).Specific.Value = 1
End If
Then, the user has to press the AddRow button to add new rows, and the user can only add 1 new blank row. Later I'll change the row adding behavior to mimic B1s.
If pVal.BeforeAction = False Then
Select Case pVal.ItemUID
Case "AddRow"
'ItemHandler_Click = AddRow(oCompany, oApplication, oForm, oForm.Items.Item("mtx_NR").Specific.RowCount())
oMatrix = oForm.Items.Item("mtx_NR").Specific
If oMatrix.RowCount > 0 Then
If Trim(oMatrix.Columns.Item("V_PltCode").Cells.Item(oMatrix.RowCount).Specific.Value) = "" Then
oApplication.StatusBar.SetText(TranslateStr(oApplication, MustChoosePallet), BoMessageTime.bmt_Short)
Exit Function
End If
End If
ItemHandler_Click = NewLine(oCompany, oApplication, oForm)
Exit Function
Private Function NewLine(ByRef oCompany As SAPbobsCOM.Company, ByRef oApplication As SAPbouiCOM.Application, _
ByRef oForm As SAPbouiCOM.Form) As Boolean
NewLine = False
Try
oMatrix = oForm.Items.Item("mtx_NR").Specific
Dim Index As Integer = oMatrix.RowCount
With oForm.DataSources.DBDataSources.Item("@ADAT_NR1")
.Clear()
End With
oMatrix.AddRow()
oMatrix.Columns.Item("V_LineId").Cells.Item(Index + 1).Specific.Value = (Index + 1).ToString
oMatrix.FlushToDataSource()
oMatrix.LoadFromDataSource()
oForm.Refresh()
NewLine = True
Catch ex As Exception
oApplication.MessageBox("NewLine(): " & oCompany.GetLastErrorCode.ToString & ", " & ex.Message)
End Try
End Function
When I Add or Update the data, I clear the last blank row, if it exists.
'// In the Click Event
If pVal.BeforeAction = True Then
Select Case pVal.ItemUID
Case "1"
If oForm.Mode <> BoFormMode.fm_FIND_MODE Then
oMatrix = oForm.Items.Item("mtx_NR").Specific
oMatrix.FlushToDataSource()
oMatrix.LoadFromDataSource()
If Trim(oMatrix.Columns.Item("V_PltCode").Cells.Item(oMatrix.RowCount).Specific.Value) = "" Then
oForm.DataSources.DBDataSources.Item("@ADAT_NR1").RemoveRecord(oMatrix.RowCount - 1)
oMatrix.DeleteRow(oMatrix.RowCount)
'oMatrix.FlushToDataSource()
End If
End If
End Select
My question is, Is there an easier way to Add and Delete Rows??
BTW, I still have a problem so solve. With this code, when the user deletes a row the row numbering is incorrect. Example: if I have to rows in a matrix and I delete row nº1, row nº2 will hold the same number...
Any Ideas?
Thanks in advanced,
Vítor VieiraHi Victor,
there is a Form Data event which you ca use in that try to write the code for adding a row after updating and delete a row while inserting and add a row while traversing.
sample code.
Sub FormDataEvent(ByRef BusinessObjectInfo As SAPbouiCOM.BusinessObjectInfo, ByRef BubbleEvent As Boolean)
Try
Select Case BusinessObjectInfo.EventType
Case SAPbouiCOM.BoEventTypes.et_FORM_DATA_ADD, SAPbouiCOM.BoEventTypes.et_FORM_DATA_UPDATE
If BusinessObjectInfo.BeforeAction = True Then
objForm = objMain.objApplication.Forms.Item(BusinessObjectInfo.FormUID)
oDBs_Head = objForm.DataSources.DBDataSources.Item("@Header")
oDBs_Detail= objForm.DataSources.DBDataSources.Item("@Line")
objMatrix = objForm.Items.Item("83").Specific
If objMatrix.VisualRowCount <> 0 Then
objMatrix.DeleteRow(objMatrix.VisualRowCount)
objMatrix.FlushToDataSource()
End If
If BusinessObjectInfo.EventType = SAPbouiCOM.BoEventTypes.et_FORM_DATA_ADD Then
End If
ElseIf BusinessObjectInfo.ActionSuccess = True Then
objForm = objMain.objApplication.Forms.Item(BusinessObjectInfo.FormUID)
If BusinessObjectInfo.EventType = SAPbouiCOM.BoEventTypes.et_FORM_DATA_UPDATE Then
objMatrix = objForm.Items.Item("83").Specific
objMatrix.AddRow()
SetNewLineCharge(objForm.UniqueID, objMatrix.VisualRowCount)
objMatrix.FlushToDataSource()
End If
End If
Case SAPbouiCOM.BoEventTypes.et_FORM_DATA_LOAD
If BusinessObjectInfo.ActionSuccess = True Then
oDBs_Head = objForm.DataSources.DBDataSources.Item("@Header")
oDBs_Detail = objForm.DataSources.DBDataSources.Item("@Line")
objMatrix = objForm.Items.Item("83").Specific
objMatrix.AddRow()
SetNewLineCharge(objForm.UniqueID, objMatrix.VisualRowCount)
objMatrix.FlushToDataSource()
End If
End Select
End Sub
Hope this helps,
OM Prakash -
ADOBE Forms Central - add and remove rows (PDF Form)
Hello, I am currently evaluating ‘ADOBE Forms Central' to set up a form with editable fields. I have set up a test form in ADOBE Forms Central and was unable to insert an option to add and remove rows similar to the print screen attached. Is this possible to do using ADOBE Forms Central or should I be using
a different ADOBE application? Thank you, LizA dynamic XFA PDF form can do this. You can create such forms with LiveCycle Designer, which was included with the Windows version of Acrobat Pro prior to version 11. It is now a separate product.
XFA forms can't be used with FormsCentral, however, only Acroforms can. -
When selecting a row from a view with a nested table I want just ONE entry returned
Does a nested table in a view "EXPLODE" all values ALWAYS no matter the where clause for the nested table?
I want to select ONE row from a view that has columns defined as TYPE which are PL/SQL TABLES OF other tables.
when I specify a WHERE clause for my query it gives me the column "EXPLODED" with the values that mathc my WHERE clause at the end of the select.
I dont want the "EXPLODED" nested table to show just the entry that matches my WHERE clause. Here is some more info:
My select statement:
SQL> select * from si_a31_per_vw v, TABLE(v.current_allergies) a where a.alg_seq
=75;
AAAHQPAAMAAAAfxAAA N00000 771 223774444 20 GREGG
CADILLAC 12-MAY-69 M R3
NON DENOMINATIONAL N STAFF USMC N
U
E06 11-JUN-02 H N
05-JAN-00 Y Y
USS SPAWAR
353535 USS SPAWAR
SI_ADDRESS_TYPE(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NUL
L, NULL)
SI_ADDRESS_TAB()
SI_ALLERGY_TAB(SI_ALLERGY_TYPE(69, 'PENICILLIN', '11-JUN-02', NULL), SI_ALLERGY
TYPE(74, 'SHELLFISH', '12-JUN-02', NULL), SIALLERGY_TYPE(68, 'PEANUTS', '13-J
UN-02', NULL), SI_ALLERGY_TYPE(75, 'STRAWBERRIES', '13-JUN-02', NULL))
SI_ALLERGY_TAB()
75 STRAWBERRIES 13-JUN-02
*******Notice the allergy entry of 75, Strawberries, 13-JUN-02 at the
end. This is what I want not all the other exploded data.
SQL> desc si_a31_per_vw
Name Null? Type
........ Omitted uneeded previous column desc because of metalink
character limit but the view is bigger then this.......
DEPT_NAME VARCHAR2(20)
DIV_NAME VARCHAR2(20)
ADDRESSES SI_ADDRESS_TAB
CURRENT_ALLERGIES SI_ALLERGY_TAB
DELETED_ALLERGIES SI_ALLERGY_TAB
SQL> desc si_allergy_tab
si_allergy_tab TABLE OF SI_ALLERGY_TYPE
Name Null? Type
ALG_SEQ NUMBER
ALG_NAME VARCHAR2(50)
START_DATE DATE
STOP_DATE DATE
SQL> desc si_allergy_type
Name Null? Type
ALG_SEQ NUMBER
ALG_NAME VARCHAR2(50)
START_DATE DATE
STOP_DATE DATECan you explain what do you mean by the following?
"PL/SQL tables (a.k.a. Index-by tables) cannot be used as the basis for columns and/or attributes"There are three kinds of collections:
(NTB) Nested Tables
(VAR) Varrying Arrays
(IBT) Index-by Tables (the collection formerly known as "PL/SQL tables")
NTB (and VAR) can be defined as persistent user defined data types, and can be used in table DDL (columns) and other user defined type specifications (attributes).
SQL> CREATE TYPE my_ntb AS TABLE OF INTEGER;
SQL> CREATE TABLE my_table ( id INTEGER PRIMARY KEY, ints my_ntb );
SQL> CREATE TYPE my_object AS OBJECT ( id INTEGER, ints my_ntb );
/IBT are declared inside stored procedures only and have slightly different syntax from NTB. Only variables in stored procedures can be based on IBT declarations.
CREATE PROCEDURE my_proc IS
TYPE my_ibt IS TABLE OF INTEGER INDEX BY BINARY_INTEGER; -- now you see why they are called Index-by Tables
my_ibt_var my_ibt;
BEGIN
NULL;
END;That sums up the significant differences as it relates to how they are declared and where they can be referenced.
How are they the same?
NTB and VAR can also be (non-persistently) declared in stored procedures like IBTs.
Why would you then ever use IBTs?
IBTs are significantly easier to work with, since you don't have to instantiate or extend them as you do with NTB and VAR, or
Many other highly valuable PL/SQL programs make use of them, so you have to keep your code integrated/consistent.
There's a lot more to be said, but I think this answers the question posed by Sri.
Michael -
Adding a button in each row of table view
Hi.
In my application i have to add a button in each row of table view. i have done this by using UICatalog example. now problem is how I can handle the click events of these buttons.
suppose i have 5 buttons in 5 rows ... now one of them is clicked(suppose button in 3rd row). how would i know that button in 3rd row is clicked.
Muhammad Usman Aleem- (UITableViewCell)tableView:(UITableView)tableView
cellForRowAtIndexPath:(NSIndexPath*)indexPath {
static NSString *CellTableIdentifier = @"CellTableIdentifier ";
static NSUInteger nTag = 100;
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:
CellTableIdentifier];
if (cell == nil) {
CGRect cellFrame = CGRectMake(0, 0, 300, 65);
cell = [[[UITableViewCell alloc] initWithFrame:cellFrame
reuseIdentifier:CellTableIdentifier] autorelease];
CGRect labelRect = CGRectMake(10, 26, 190, 15);
UILabel *label = [[UILabel alloc] initWithFrame:labelRect];
label.textAlignment = UITextAlignmentLeft;
label.font = [UIFont boldSystemFontOfSize:12];
// set all label tags to 10 so the label can be found in the subviews
label.tag = 10;
[cell.contentView addSubview:label];
[label release];
CGRect buttonRect = CGRectMake(210, 25, 65, 25);
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = buttonRect;
// set the button title here if it will always be the same
[button setTitle:@"Action" forState:UIControlStateNormal];
button.tag = nTag++;
[button addTarget:self action:@selector(myAction:) forControlEvents:UIControlEventTouchUpInside];
// make sure the button is the lowest subview so it's easy to find
[cell.contentView insertSubview:button atIndex:0];
// button will be autoreleased so don't release it here
// the label text and button title come from an array of NSDictionary in this example
NSUInteger row = [indexPath row];
NSDictionary *rowData = [self.data objectAtIndex:row];
UILabel *thisLabel = (UILabel*)[cell.contentView viewWithTag:10];
thisLabel.text = [rowData objectForKey:@"Text"];
// set the button title here if it depends on the row
UIButton *thisButton = [[cell.contentView subviews] objectAtIndex:0];
[thisButton setTitle:[rowData objectForKey:@"Button"] forState:UIControlStateNormal];
return cell;
- (IBAction)myAction:(id)sender {
UIButton *theSender = sender;
UITableViewCell *cell;
NSUInteger row = 0;
for (cell in [theTableView visibleCells]) {
UIButton *thisButton = [[cell.contentView subviews] objectAtIndex:0];
if (thisButton.tag == theSender.tag) {
row = [[theTableView indexPathForCell:cell] row];
break;
NSLog(@"myAction: row=%d", row);
Maybe you are looking for
-
Ipod touch will only charge in docking station after 3.0 upgrade
Prior to my recent (this week) upgrade to 3.0, my ipod touch could charge off of my desktop computer, my laptop, and my Apple USB wall charger adapter. That adapter is not the current version, but the prior model. Since I've done the upgrade, the ipo
-
Have recently purchased the Warcraft III Reign of Chaos Battle Chest though ahave been unable to install this on my Mac Mini. I get the following error message when attempting to run the executable from the DVD: "You can't open the application "Warc
-
"Java and BAPI Technology for SAP" by by Ken Kroes - Is this book useful?
Howdy partners, I've got a 'book' called "Java and BAPI Technology for SAP" by by Ken Kroes, Anil Thakur, Gareth M. deBruyn, Robert Lyfareff. Now, does anyone know if the info in this book is still relevant to the modern SAP world? I mean its still t
-
I have an accident form 98% complete and have the need for the user to input the accident report # using a response dialog. the code I have is: var response response=xfa.host.response("Enter the Accident Number", "IAR") if (response!=null) (response=
-
Iphone 3G- Sim card holder broken
I recently broke my iphone sim card holder by inserting it in the wrong way and then it would not come out and the bottom snapped. It now means that my sim card is not registering. Can i replace the sim card holder and where? Message was edited by: P